具体描述
产品特色
内容简介
本书将介绍如何使用Python编写网络爬虫程序获取互联网上的大数据。本书包括三部分内容:基础部分、进阶部分和项目实践。基础部分(第1~6章)主要介绍爬虫的三个步骤(获取网页、解析网页和存储数据),并通过诸多示例的讲解,让读者从基础内容开始系统性地学习爬虫技术,并在实践中提升Python爬虫水平。进阶部分(第7~12章)包括多线程的并发和并行爬虫、分布式爬虫、更换IP等,帮助读者进一步提升爬虫水平。项目实践部分(第13~16章)使用本书介绍的爬虫技术对几个真实的网站进行抓取,让读者能在读完本书后根据自己的需求写出爬虫程序。无论是否有编程基础,只要是对爬虫技术感兴趣的读者,本书就能带领读者从入门到进阶,再到实战,一步步了解爬虫,终写出自己的爬虫程序。
目录
推荐序
推荐序二
前言
前言二
第1章网络爬虫入门
1.1为什么要学网络爬虫
1.1.1 网络爬虫能带来什么好处
1.1.2能从网络上爬取什么数据
1.1.3应不应该学爬虫
1.2网络爬虫是否合法
1.2.1 Robots协议
1.2.2 网络爬虫的约束
1.3网络爬虫的基本议题
1.3.1 Python爬虫的流程
1.3.2三个流程的技术实现
2章编写第一个网络爬虫
2.1搭建Python平台
2.1.1 Python的安装
2.1.2使用pip安装第三方库
2.1.3使用编译器Jupyter编程
2.2 Python使用入门
2.2.1基本命令
2.2.2数据类型
2.2.3条件语句和循环语句
2.2.4函数
2.2.5面向对象编程
2.3编写第一个简单的爬虫
第3章静态网页抓取
第4章动态网页抓取
第5章解析网页
第6章数据存储
第7章提升爬虫的速度
第8章反爬虫问题
第9章解决中文乱码
第10章登录与验证码处理
第11章服务器采集
第12章分布式爬虫
第13章爬虫实践一:维基百科
第14章爬虫实践二:知乎Live
第15章爬虫实践三:百度地图API
第16章爬虫实践四:餐厅点评
前言/序言
爬虫程序是DT(Data Technology,数据技术)收集信息的基础,程序员爬取目标网站的资料后,就可以分析和建立应用了。我们关心的是科技如何给人家';#:
来实效,进而实现目标和理想,不能应用的技术称为魔术,JI能用J:表演。我们十分关注读者能否把握爬虫概念,所以相关的技术结合不同的实例讲解,希望能指导读者完成整个数据采集的流程。
Python是一个简单、有效的语言,爬虫所需的获取、存储、整理等流程都可以使用Python系统地实现。此外,绝大部分计算机也町以直接使用Python语言或简单地安装Python系统,相信读者一定能轻松地把Python作为爬虫的主要技术。
动心者,当具有大本大源DT的核心是从信息的源头去理解和分析,以做出能打动对方的行动决策力+案。由谷歌搜索到现在的大数据时代,爬虫技术的莺要性和广泛性‘直很突出。
程序员理解了信息的获取、存储和整理各方面的基本关系,才有可能系统地收集和应用不同源头和千变万化的网站信息。
剡居共享程序员要建立共利的互联网环境,不能把爬虫作为窃取数据的J_|.具,爬虫必须在合情、合法、合理的情况下获取和应用。尊重数据供应者的知识产:权利正常运作才能产生长久共利的环境。保障对方平台的正常运作是每个程序员都应当做到的,因此我们把爬虫的制约放在本书的第1章讨论。
自强不息
互联网科技不断更新和进步,网站信息也随之不断改变。爬虫的乐趣在于如何一直高效率、持续不断地从日新月异的网站中获取信息。另外,程序员要不断学习新技术,自我提高,这样在爬虫的过程中才能够理解互联网的运作和结构。最后,感谢好友唐松给予我一起创作这本书的机会,让我可以分享爬虫技术和当中的乐趣。 陈智铨 思路富邦智能应用有限公司行政总裁!
近年来,大数据成为业界与学术界最火热的话题之一,数据已经成为每个公司极为重要的资产。互联网大量的公开数据为个人和公司提供了以往想象不到的可以获取的数据量。而掌握网络爬虫技术可以帮助你获取这些有用的公开数据集。
执笔本书的起因是我打算在知乎上写博客向香港中文大学市场营销学的研究生讲解Python网络爬虫技术,让这些商科学生掌握一些大数据时代重要的技术能力。因此,本书除了面向技术人员外,还面向不懂编程的小白。本书尽量做到浅显易懂,希望能够将网络爬虫学习的门槛降低,让大家都能享受到使用网络爬虫编程的乐趣。
我是从商科自学转到数据科学的,因此编程和数据挖掘能力都是上网自学的。在这个过程中,我深刻地体会到,与不知所云的教学相比,深入浅出的教学对学习效率有很大提升。因此,学习知识最重要的两点是,通过富有逻辑的框架解构学习和通过实战解决实际问题,从而增强学习效果。本书的内容侧重于将网络爬虫技术进行框架性的解构,并使用代码将爬虫技术应用于抓取真实的网站。
本书所有代码均在Python 3.6中测试通过,可以从Github下载这些代码,地址为https://github.com/Santostang/PythonScraping;也可以从百度网盘下载,地址为http://pan.baidu.com/s/lc2w9rck(注意区分数字和字母大小写)。为了方便大家练习Python网络爬虫,我专门搭建了一个博客网站用于Python网络爬虫的教学,本书教学部分的爬虫全部基于爬取我的个人博客网站( www.santostang.com)。一方面,由于这个网站不会更改设计和框架,因此本书的网络爬虫代码可以一直使用;另一方面,由于这是我自己的博客网站,因此可以避免一些法律上的风险。
本书主要分为三部分:基础部分(第1~6章)、进阶部分(第7~12章)和项目实践部分(第13~16章),以此来针对不同类型的读者。如果你是Python爬虫的初学者,那么可以先学习基础部分,这部分每一章的最后都有自我实践题,读者可以通过实践题熟悉编写Python爬虫代码。如果你已经对Python爬虫有所了解,但是在实践中遇到了各种问题,那么可以直接学习进阶部分,这部分为你在爬虫实践中遇到的问题提供了解决方案。本书最后的项目实践部分是让你在学习Python爬虫后,可以通过在真实网站中练习来消化和吸收Python爬虫的知识。
最后,感谢卞诚君老师在我写书过程中给予的指导!感谢我的父母在撰写此书的过程中给予的支持和鼓励!还要感谢李宜威、周启航、吴嘉杰等各位朋友以及刘建南教授等各位前辈在我的数据科学之路上一直给予的支持和无私帮助!
唐松2017年6月
《Python数据科学实战指南:从数据获取到洞察提炼》 内容概述: 本书并非一本泛泛而谈的理论著作,而是一本以实践为导向的“动手指南”,旨在带领读者深入Python数据科学的各个核心环节,从数据的获取、清洗、转换,到探索性数据分析(EDA)、可视化,再到构建机器学习模型进行预测与分类,最终实现从原始数据中提炼有价值的洞察。全书以大量的真实案例和代码实现贯穿始终,力求让读者在解决实际问题的过程中,逐步掌握Python在数据科学领域强大的应用能力。 本书特点: 聚焦实战,拒绝空谈: 我们深知,数据科学的学习离不开动手实践。本书摒弃了枯燥的理论堆砌,而是通过一系列精心设计的项目,如金融市场数据分析、社交媒体情感分析、医疗影像特征提取、用户行为预测等,引导读者一步步构建完整的项目流程。读者将亲手编写代码,处理真实世界的数据,体验数据科学从想法到实现的完整过程。 工具链全面,技能迭代: 本书将涵盖Python数据科学领域最核心、最流行的开源工具库,包括: 数据获取与存储: 重点介绍如何使用 `pandas` 和 `numpy` 进行高效的数据读取、写入和基本操作,并探索 `SQLAlchemy` 等工具与数据库的交互,以及如何处理不同的数据格式(CSV, JSON, Excel, XML等)。 数据清洗与预处理: 深入讲解 `pandas` 在缺失值处理、异常值检测、数据类型转换、重复值删除、文本清洗(正则表达式)、特征工程(特征编码、特征缩放、特征选择)等方面的强大功能,这是数据分析和建模的基石。 探索性数据分析(EDA): 引导读者运用 `matplotlib` 和 `seaborn` 进行数据可视化,发现数据中的模式、趋势和关联性,理解数据分布,并利用 `pandas` 的聚合、分组、统计功能深入挖掘数据特征。 统计建模与假设检验: 介绍基础的统计学概念,并演示如何使用 `scipy.stats` 进行描述性统计、概率分布分析、假设检验等,为后续的机器学习建模打下统计学基础。 机器学习算法实践: 重点介绍 `scikit-learn` 库,涵盖监督学习(回归、分类)和无监督学习(聚类)的核心算法,如线性回归、逻辑回归、决策树、随机森林、支持向量机(SVM)、K-Means等。每一项算法都将伴随清晰的原理讲解和代码实现,并通过交叉验证、网格搜索等技术进行模型调优。 特定领域应用: 穿插介绍一些领域特定的数据科学应用,例如自然语言处理(NLP)基础(使用 `NLTK` 或 `spaCy` 进行文本预处理和词频分析),以及时间序列分析(使用 `pandas` 的时间序列功能)。 代码质量高,可复用性强: 本书提供的所有代码都经过精心设计和测试,力求清晰、简洁、高效,并遵循行业最佳实践。读者不仅能够直接运行,更能从中学习到优雅的代码风格和模块化设计的思路,为未来的项目开发奠定良好基础。 循序渐进,零基础友好: 即使是Python编程新手,只要具备一定的逻辑思维能力,也能跟随本书的学习。我们会从基础的Python语法和数据结构入手,逐步引导读者进入更复杂的数据科学概念和技术。对于有一定Python基础但缺乏数据科学经验的读者,本书更是提供了快速成长的路径。 案例丰富,覆盖面广: 本书的案例设计力求贴近实际工作场景,涵盖金融、电商、医疗、市场营销、社交媒体等多个热门领域,让读者在学习过程中能够直观地感受到数据科学的价值和应用潜力。 本书结构与内容详解: 第一部分:数据获取与基础处理 第一章:Python数据科学生态概览 Python在数据科学领域的地位与发展 核心库简介:NumPy, Pandas, Matplotlib, Scikit-learn 开发环境搭建:Anaconda, Jupyter Notebook/Lab 第二章:NumPy:高性能科学计算基础 NumPy数组(ndarray)的创建、索引与切片 数组运算:向量化操作,广播机制 数学函数与统计方法 随机数生成 第三章:Pandas:数据处理的利器 Series与DataFrame:核心数据结构 数据读取与写入:CSV, Excel, JSON, SQL数据库 数据选择与过滤:loc, iloc, 条件筛选 数据清洗:缺失值处理(fillna, dropna),重复值处理 数据转换:类型转换,apply, map 字符串处理(str访问器) 数据合并与连接:merge, join, concat 分组与聚合:groupby, agg, pivot_table 第二部分:数据探索与可视化 第四章:探索性数据分析(EDA)实战 描述性统计:均值、中位数、方差、标准差等 数据分布分析:直方图、密度图 相关性分析:散点图矩阵、相关系数矩阵 异常值检测初步 第五章:Matplotlib:基础绘图入门 Figure, Axes, Artist对象 绘制基本图表:折线图、散点图、柱状图、饼图 图表美化:标题、轴标签、图例、颜色、线型 子图绘制 第六章:Seaborn:高级数据可视化 Seaborn的统计图表:分布图(displot, histplot, kdeplot),关系图(scatterplot, lineplot),分类图(boxplot, violinplot, countplot) 类别型数据可视化:条形图、箱线图、小提琴图 多变量关系可视化:pairplot, heatmap 定制化图表风格 第三部分:统计建模与机器学习 第七章:统计学基础与假设检验 概率分布:正态分布、二项分布等 均值、方差、标准差的统计推断 假设检验原理:t检验、卡方检验 Python实现:scipy.stats模块 第八章:Scikit-learn:机器学习入门 Scikit-learn的API概览 数据预处理:特征缩放(StandardScaler, MinMaxScaler),编码(OneHotEncoder) 模型选择与评估:训练集/测试集划分,交叉验证,评估指标(准确率, 精确率, 召回率, F1分数, ROC曲线) 第九章:监督学习:回归模型 线性回归:原理、多项式回归 模型训练与预测 模型评估:R²分数,MAE, MSE, RMSE 岭回归与Lasso回归(正则化) 第十章:监督学习:分类模型 逻辑回归:原理与应用 决策树:构建原理,剪枝 随机森林:集成学习思想,构建与应用 支持向量机(SVM):基本原理,核函数 模型评估:混淆矩阵,ROC曲线,AUC值 第十一章:无监督学习:聚类分析 K-Means聚类:算法原理,选择K值(肘部法则,轮廓系数) 层次聚类 聚类结果的解释与可视化 第四部分:进阶主题与实战项目 第十二章:文本数据分析初步(NLP) 文本数据获取与预处理:分词、去除停用词、词干提取/词形还原 词袋模型(Bag-of-Words) TF-IDF(词频-逆文档频率) 情感分析入门案例 第十三章:时间序列数据分析 时间序列数据处理:重采样,滚动窗口 时间序列分解:趋势、季节性、残差 基础时间序列模型:ARIMA模型(概念介绍) 第十四章:综合实战项目:金融市场数据分析 爬取股票价格数据(示例,不详述爬虫技术细节) 数据清洗与整理 绘制股票走势图、交易量图 计算移动平均线、技术指标 分析不同股票之间的相关性 第十五章:综合实战项目:电商用户行为分析 模拟用户购买日志数据 用户购买行为分析:活跃用户,购买频率,客单价 RFM模型(Recency, Frequency, Monetary)概念介绍与实现 用户分群(聚类) 第十六章:部署与未来展望 模型保存与加载 简单的模型部署概念介绍(不深入) 数据科学的未来发展趋势 目标读者: 希望掌握Python进行数据分析、数据挖掘和机器学习的初学者。 需要提升数据处理、可视化和建模能力的在校学生。 渴望将数据驱动思维应用于工作决策的各行业从业人员,如市场营销、产品管理、金融分析、生物统计等。 对人工智能和数据科学领域感兴趣,希望从实践中学习的爱好者。 学习收益: 通过学习本书,您将能够: 熟练运用Python及其核心库进行高效的数据处理和分析。 掌握数据可视化技术,能够有效地沟通数据洞察。 理解并应用主流的机器学习算法,解决实际的预测和分类问题。 具备独立完成一个数据科学项目的能力,从数据获取到结果呈现。 构建坚实的数据科学基础,为进一步深入学习打下坚实根基。 本书将是您开启数据科学之旅,并在Python的世界中解锁数据价值的得力助手。