[套装书]Python爬虫、数据分析与可视化:工具详解与案例实战+Python网络爬虫从入门到实践 第2版(2册)

作者
成立明 胡书敏 黄勇 唐松
丛书名
出版社
机械工业出版社
ISBN
9782011181484
简要
简介
内容简介书籍计算机书籍 ---------------------------Python爬虫、数据分析与可视化:工具详解与案例实战--------------------------- 全书共13章。第1~4章为基础篇,主要讲述Python基础知识、Python数据结构、面向对象程序设计思想,Python异常处理和读写文件的技巧;第5~7章为数据分析的工具篇,主要讲述Numpy库、Pandas库和Matplotlib库的基本功能和应用;第8章和第9章为“数据分析高级技能篇”,主要讲述通过爬取技术博客案例、基于Scrapy爬虫框架的实用技巧、数据分析的常用方法,如Python连接操作数据库的相关技能,基于时间序列、概率分析、推断统计和回归分析方法的数学分析方法;第10~13章为“综合案例篇”,主要讲述二手房数据分析案例、股票数据分析案例以及基于Sklearn库的机器学习相关实践。 ---------------------------Python网络爬虫从入门到实践 第2版--------------------------- 使用Python编写网络爬虫程序获取互联网上的大数据是当前的热门专题。本书内容包括三部分:基础部分、进阶部分和项目实践。基础部分(第1~7章)主要介绍爬虫的三个步骤——获取网页、解析网页和存储数据,并通过诸多示例的讲解,让读者能够从基础内容开始系统性地学习爬虫技术,并在实践中提升Python爬虫水平。进阶部分(第8~13章)包括多线程的并发和并行爬虫、分布式爬虫、更换IP等,帮助读者进一步提升爬虫水平。项目实践部分(第14~17章)使用本书介绍的爬虫技术对几个真实的网站进行抓取,让读者能在读完本书后根据自己的需求写出爬虫程序。
目录



---------------------------Python爬虫、数据分析与可视化:工具详解与案例实战---------------------------


前言
第1章 Python编程基础 1
1.1 搭建Python开发环境 1
1.1.1 安装Python解释器 1
1.1.2 安装Python第三方开发包 2
1.1.3 在PyCharm里新建项目和文件 3
1.1.4 在PyCharm里更换Python解释器 5
1.2 实践Python基本语法 5
1.2.1 针对基本数据类型的操作 6
1.2.2 针对字符串的操作 7
1.2.3 多行注释与引入中文 8
1.2.4 条件分支语句 9
1.2.5 循环操作语句 9
1.2.6 break和continue的用法 10
1.2.7 格式化输出语句 11
1.3 定义和调用函数 11
1.4 return的重要性——函数的递归调用 12
1.5 熟悉函数的特殊写法 13
1.5.1 函数作为参数 14
1.5.2 函数作为返回结果 14
1.5.3 匿名函数 15
1.6 本章小结 15
第2章 Python的数据结构 16
2.1 列表 16
2.1.1 定义列表 16
2.1.2 在列表中增、删、改元素 17
2.1.3 列表的切片操作 18
2.1.4 遍历列表 19
2.1.5 列表的常见用法 19
2.2 元组 20
2.2.1 创建和使用元组 20
2.2.2 元组的常见用法 21
2.3 集合 22
2.3.1 创建和使用集合 22
2.3.2 针对集合的常用数据操作 23
2.4 字典 23
2.4.1 创建和使用字典 24
2.4.2 增加、删除和修改字典中的元素 24
2.4.3 遍历字典 25
2.5 针对数据结构的通用性操作 25
2.5.1 通过map方法实现序列的映射 25
2.5.2 filter方法与数据筛选 26
2.5.3 通过reduce方法实现累计效果 27
2.5.4 通过sorted方法排序对象 27
2.6 本章小结 28
第3章 Python面向对象编程 29
3.1 什么是面向对象思想 29
3.2 封装特性 30
3.2.1 创建类并在类里封装属性和方法 30
3.2.2 类方法的第一个参数必须指向实例 31
3.2.3 私有属性的典型错误用法 31
3.2.4 了解其他常用魔术方法 33
3.2.5 从私有属性和私有方法体会封装特性 34
3.3 继承特性 35
3.3.1 继承的语法和使用场景 35
3.3.2 子类无法使用父类的私有属性和方法 36
3.3.3 受保护的属性和方法 37
3.3.4 多重继承与组合模式 38
3.4 多态特性 40
3.4.1 以迭代器为例来理解多态 40
3.4.2 可变参数与方法重载 41
3.4.3 整合使用多态和继承 42
3.5 模块、包以及第三方库 43
3.5.1 通过import重用现有模块中的功能 43
3.5.2 自定义包和使用包 43
3.5.3 引入并使用第三方库 44
3.6 本章小结 45
第4章 异常处理机制与文件读写 46
4.1 通过try…except…finally处理异常 46
4.1.1 处理异常的try…except从句 46
4.1.2 使用异常处理类 47
4.1.3 同时处理多个异常 48
4.1.4 在处理异常时引入else代码块 49
4.1.5 引入finally从句 50
4.2 raise与except的整合使用 51
4.2.1 通过raise抛出异常 51
4.2.2 自定义异常且与except整合使用 51
4.3 异常处理的实践经验 52
4.3.1 尽可能缩小try的代码块 53
4.3.2 用专业的异常处理类针对性地处理异常 53
4.3.3 拿到异常别忽视 54
4.3.4 合理确定异常的影响范围 54
4.4 在读写文件案例中使用异常机制 55
4.4.1 通过os.path获取和文件属性 55
4.4.2 以只读模式打开文件 56
4.4.3 逐行读取文件 58
4.4.4 通过write写文件 59
4.4.5 以添加的方式写文件 59
4.4.6 读写csv文件 60
4.5 本章小结 61
第5章 NumPy数组处理 62
5.1 NumPy库的基础数据结构:ndarray对象 62
5.1.1 通过array方法创建ndarray 62
5.1.2 ndarray的dtype属性 63
5.1.3 创建全0或全1的ndarray 64
5.2 NumPy库的常用操作 65
5.2.1 通过arange方法创建序列数组 65
5.2.2 针对ndarray的数学运算 66
5.2.3 常用的科学计算函数 67
5.2.4 常用的聚合统计函数 68
5.2.5 遍历ndarray数组 69
5.3 针对ndarray的索引和切片操作 69
5.3.1 索引操作 69
5.3.2 布尔索引与条件过滤 70
5.3.3 切片操作与共享内存 70
5.3.4 通过copy函数创建副本 72
5.4 本章小结 72
第6章 Pandas数据清洗 73
6.1 以一维方式存储数据的Series对象 73
6.1.1 Series的常规操作 74
6.1.2 创建并使用Series索引 75
6.1.3 获取Series里的切片数据 76
6.1.4 通过布尔Series获取满足条件的元素 78
6.1.5 遍历Series数据 78
6.2 以表格格式存储数据的DataFrame对象 79
6.2.1 DataFrame对象的常规用法 79
6.2.2 通过loc、iloc和ix提取数据 81
6.2.3 遍历DataFrame里的数据 82
6.3 面向DataFrame的常用数据分析方法 82
6.3.1 对DataFrame数据进行排序 83
6.3.2 以列为单位进行运算 83
6.3.3 增加和删除列 84
6.3.4 过滤和重设数据 85
6.3.5 在DataFrame中进行数据统计分析 85
6.3.6 衡量变量间关联程度的corr方法 86
6.4 Pandas与各类文件的交互 87
6.4.1 DataFrame数据与csv文件的相互转换 87
6.4.2 NaN与缺失值处理 89
6.4.3 DataFrame数据与Excel文件的相互转换 90
6.4.4 DataFrame数据与json文件的相互转换 91
6.5 本章小结 92
第7章 Matplotlib数据可视化 93
7.1 通过Matplotlib绘制各类图形 93
7.1.1 绘制折线图 93
7.1.2 绘图时的通用属性参数 94
7.1.3 绘制柱状图 95
7.1.4 绘制饼图 97
7.1.5 绘制直方图 98
7.2 设置坐标的技巧 99
7.2.1 设置x和y坐标标签文字并展示中文 99
7.2.2 设置坐标的范围 100
7.2.3 设置坐标的主刻度和次刻度 101
7.2.4 设置并旋转坐标刻度文字 102
7.3 增加可视化美观效果 103
7.3.1 设置图例 104
7.3.2 设置中文标题 105
7.3.3 设置网格效果 106
7.4 设置多图和子图效果 107
7.4.1 通过figure对象同时绘制多张图 107
7.4.2 通过add_subplot方法绘制子图 108
7.4.3 通过subplot方法绘制子图 109
7.4.4 子图共享x坐标轴 110
7.4.5 在大图里绘制子图 112
7.5 绘制高级图表 113
7.5.1 绘制散点图 113
7.5.2 绘制热图 114
7.5.3 绘制等值线图 115
7.6 通过mplot3d绘制三维图形 116
7.6.1 绘制三维曲线图 116
7.6.2 绘制三维散点图 117
7.6.3 绘制三维柱状图 118
7.7 本章小结 119
第8章 通过网络爬虫获取数据 120
8.1 和爬虫有关的HTTP 120
8.1.1 基于HTTP的请求处理流程 120
8.1.2 HTTP请求头包含操作系统和浏览器信息 122
8.1.3 Post和Get请求方法 122
8.1.4 HTTP常见的状态码 122
8.2 通过Urllib库获取网页信息 123
8.2.1 通过request爬取网页 123
8.2.2 设置超时时间 124
8.2.3 用URLError处理网络异常 124
8.2.4 设置header属性来模拟浏览器发送请求 125
8.3 通过BeautifulSoup提取页面信息 125
8.3.1 安装BeautifulSoup库 125
8.3.2 用Tag提取HTML元素和属性 126
8.3.3 用NavigableString提取元素值 127
8.3.4 用Comment提取注释 127
8.3.5 制定规则搜索指定的内容 128
8.4 通过正则表达式截取信息 130
8.4.1 查找指定字符串 130
8.4.2 用通用字符来模糊匹配 130
8.4.3 通过原子表来定义匹配规则 131
8.4.4 用findall按匹配规则截取内容 132
8.5 用Scrapy爬取博客园文章信息 134
8.5.1 通过Scrapy命令创建爬虫项目 134
8.5.2 明确爬取目标,制定爬取规则 134
8.5.3 在Item模块里定义数据模型 136
8.5.4 生成爬虫文件,定义爬取动作 136
8.5.5 在pipelines文件里定义数据存储方式 137
8.5.6 启动爬虫程序,观察运行效果 138
8.6 本章小结 139
第9章 数据分析的常用方法 140
9.1 准备并存储数据 140
9.1.1 用Pandas_datareader库获取数据 140
9.1.2 以csv和Excel格式存储数据 141
9.1.3 准备MySQL环境 142
9.1.4 在MySQL里存储数据 142
9.1.5 从数据表里读取数据 145
9.2 描述性统计 146
9.2.1 平均数、中位数和百分位数 146
9.2.2 用箱状图展示分位数 147
9.2.3 统计极差、方差和标准差 148
9.3 基于时间序列的统计方法 148
9.3.1 用rolling方法计算移动平均值 148
9.3.2 基于时间序列的自相关性分析 149
9.3.3 基于时间序列的偏自相关性分析 151
9.3.4 用热力图分析不同时间序列的相关性 152
9.4 概率分析方法与推断统计 154
9.4.1 分析收盘价,绘制小提琴图 154
9.4.2 用直方图来拟合正态分布效果 155
9.4.3 验证序列是否满足正态分布 156
9.4.4 参数估计方法 157
9.4.5 显著性验证 158
9.5 回归分析方法 159
9.5.1 构建一元线性回归模型 159
9.5.2 以多元线性回归模型预测股价 162
9.6 本章小结 164
第10章 案例:图书信息的爬取、数据清洗与分词处理 165
10.1 用Scrapy框架爬取豆瓣网编程图书 165
10.1.1 准备知识:yield的含义 165
10.1.2 明确待爬取的目标,创建Scrapy项目 166
10.1.3 定义图书的数据模型 167
10.1.4 分析页面结构,实现爬虫功能 167
10.1.5 存为csv文件 171
10.1.6 运行爬虫,观察结果 172
10.2 分析图书数据,绘制可视化图表 172
10.2.1 用Pandas库的方法清洗数据 172
10.2.2 出版社出书情况分析 173
10.2.3 评论数最多和最贵的3本图书 175
10.2.4 用直方图绘制评分频次 177
10.2.5 对书名分词,绘制词云 178
10.3 本章小结 179
第11章 案例:二手房数据的爬取、清洗与可视化 180
11.1 用Scrapy框架爬取二手房数据 180
11.1.1 明确爬取目标,创建Scrapy项目 180
11.1.2 定义二手房数据模型 181
11.1.3 分析页面结构,实现爬虫功能 181
11.1.4 定义pipelines逻辑,把数据存为json文件 185
11.1.5 运行爬虫程序,把数据存为json格式 186
11.2 分析二手房数据 186
11.2.1 清洗数据 186
11.2.2 对数据进行基本的分析 187
11.2.3 观察均价和总价的分布情况 189
11.2.4 用散点图展示关注度与价格、面积的关系 190
11.2.5 绘制关于二手房标题和地段的词云 192
11.3 本章小结 194
第12章 案例:股票数据分析与可视化 195
12.1 股市指标的分析与可视化 195
12.1.1 准备股票交易数据 195
12.1.2 用Matplotlib绘制K线图 196
12.1.3 用rolling和mean绘制均线 198
12.1.4 用柱状图描述成交量 199
12.1.5 加工DataFrame数据,绘制MACD图 201
12.1.6 绘制CCI图,进一步熟悉DataFrame 204
12.2 验证常见的股市交易策略 206
12.2.1 验证基于长短均线的交易策略 207
12.2.2 验证基于MACD指标的交易策略 209
12.2.3 验证基于CCI的交易策略 211
12.3 绘制价格通道 212
12.3.1 计算并绘制唐奇安通道 213
12.3.2 计算并绘制布林带通道 214
12.3.3 计算并绘制鳄鱼组线 216
12.4 用机器学习方法预测股票 219
12.4.1 用Lasso和岭回归拟合预测收盘价 219
12.4.2 用SVM和KNN模型预测涨跌 221
12.5 本章小结 224
第13章 基于机器学习算法的数据分析 225
13.1 数据集与机器学习的基础知识 225
13.1.1 获取sklearn提供的数据集 225
13.1.2 训练集、验证集和测试集 226
13.2 一元和多元线性回归案例 227
13.2.1 波士顿房价数据集的初步分析 227
13.2.2 构建波士顿房价的多元线性关系 230
13.2.3 交叉验证的思想及其实现 231
13.3 岭回归、Lasso回归及案例 233
13.3.1 对比线性回归和岭回归 233
13.3.2 基于岭回归拟合波士顿房价 235
13.3.3 Lasso回归 236
13.4 分类算法案例 237
13.4.1 基于线性和高斯内核的SVM分类器 238
13.4.2 用SVM分类器划分鸢尾花 240
13.4.3 基于KNN算法的分类器 243
13.4.4 KNN分类器对酒的分类 244
13.4.5 基于逻辑回归的分类方法 245
13.4.6 用逻辑回归划分鸢尾花 246
13.5 基于手写体数字识别的分类案例 248
13.5.1 观察Digits数据集 248
13.5.2 以训练集和测试集的方式评估结果 249
13.5.3 对比分类模型的预测和真实结果 250
13.6 本章小结 252



---------------------------Python网络爬虫从入门到实践 第2版---------------------------


前言
第1章 网络爬虫入门 1
1.1 为什么要学网络爬虫 2
1.1.1 网络爬虫能带来什么好处 2
1.1.2 能从网络上爬取什么数据 3
1.1.3 应不应该学爬虫 3
1.2 网络爬虫是否合法 3
1.2.1 Robots协议 4
1.2.2 网络爬虫的约束 5
1.3 网络爬虫的基本议题 6
1.3.1 Python爬虫的流程 7
1.3.2 三个流程的技术实现 7
第2章 编写第一个网络爬虫 9
2.1 搭建Python平台 10
2.1.1 Python的安装 10
2.1.2 使用pip安装第三方库 12
2.1.3 使用编辑器Jupyter 编程 13
2.1.4 使用编辑器Pycharm编程 15
2.2 Python 使用入门 18
2.2.1 基本命令 18
2.2.2 数据类型 19
2.2.3 条件语句和循环语句 21
2.2.4 函数 23
2.2.5 面向对象编程 24
2.2.6 错误处理 28
2.3 编写第一个简单的爬虫 29
2.3.1 第一步:获取页面 29
2.3.2 第二步:提取需要的数据 30
2.3.3 第三步:存储数据 32
2.4 Python实践:基础巩固 33
2.4.1 Python基础试题 34
2.4.2 参考答案 35
2.4.3 自我实践题 38
第3章 静态网页抓取 39
3.1 安装Requests 40
3.2 获取响应内容 40
3.3 定制Requests 41
3.3.1 传递URL参数 41
3.3.2 定制请求头 42
3.3.3 发送POST请求 43
3.3.4 超时 44
3.4 Requests爬虫实践:TOP250电影数据 44
3.4.1 网站分析 45
3.4.2 项目实践 45
3.4.3 自我实践题 47
第4章 动态网页抓取 48
4.1 动态抓取的实例 49
4.2 解析真实地址抓取 50
4.3 通过Selenium模拟浏览器抓取 55
4.3.1 Selenium的安装与基本介绍 55
4.3.2 Selenium的实践案例 57
4.3.3 Selenium获取文章的所有评论 58
4.3.4 Selenium的高级操作 61
4.4 Selenium爬虫实践:深圳短租数据 64
4.4.1 网站分析 64
4.4.2 项目实践 66
4.4.3 自我实践题 69
第5章 解析网页 70
5.1 使用正则表达式解析网页 71
5.1.1 re.match方法 71
5.1.2 re.search方法 74
5.1.3 re.findall方法 74
5.2 使用BeautifulSoup解析网页 76
5.2.1 BeautifulSoup的安装 76
5.2.2 使用BeautifulSoup获取博客标题 77
5.2.3 BeautifulSoup的其他功能 78
5.3 使用lxml解析网页 82
5.3.1 lxml的安装 82
5.3.2 使用lxml获取博客标题 82
5.3.3 XPath的选取方法 84
5.4 总结 85
5.5 BeautifulSoup爬虫实践:房屋价格数据 86
5.5.1 网站分析 86
5.5.2 项目实践 87
5.5.3 自我实践题 89
第6章 数据存储 90
6.1 基本存储:存储至TXT或CSV 91
6.1.1 把数据存储至TXT 91
6.1.2 把数据存储至CSV 93
6.2 存储至MySQL数据库 94
6.2.1 下载安装MySQL 95
6.2.2 MySQL的基本操作 99
6.2.3 Python操作MySQL数据库 104
6.3 存储至MongoDB数据库 106
6.3.1 下载安装MongoDB 107
6.3.2 MongoDB的基本概念 110
6.3.3 Python操作MongoDB数据库 112
6.3.4 RoboMongo的安装与使用 113
6.4 总结 115
6.5 MongoDB爬虫实践:虎扑论坛 116
6.5.1 网站分析 116
6.5.2 项目实践 117
6.5.3 自我实践题 123
第7章 Scrapy框架 124
7.1 Scrapy是什么 125
7.1.1 Scrapy架构 125
7.1.2 Scrapy数据流(Data Flow) 126
7.1.3 选择Scrapy还是Requests+bs4 127
7.2 安装Scrapy 128
7.3 通过Scrapy抓取博客 128
7.3.1 创建一个Scrapy项目 128
7.3.2 获取博客网页并保存 129
7.3.3 提取博客标题和链接数据 131
7.3.4 存储博客标题和链接数据 133
7.3.5 获取文章内容 134
7.3.6 Scrapy的设置文件 136
7.4 Scrapy爬虫实践:财经新闻数据 137
7.4.1 网站分析 137
7.4.2 项目实践 138
7.4.3 自我实践题 141
第8章 提升爬虫的速度 142
8.1 并发和并行,同步和异步 143
8.1.1 并发和并行 143
8.1.2 同步和异步 143
8.2 多线程爬虫 144
8.2.1 简单的单线程爬虫 145
8.2.2 学习Python多线程 145
8.2.3 简单的多线程爬虫 148
8.2.4 使用Queue的多线程爬虫 150
8.3 多进程爬虫 153
8.3.1 使用multiprocessing的多进程爬虫 153
8.3.2 使用Pool + Queue的多进程爬虫 155
8.4 多协程爬虫 158
8.5 总结 160
第9章 反爬虫问题 163
9.1 为什么会被反爬虫 164
9.2 反爬虫的方式有哪些 164
9.2.1 不返回网页 165
9.2.2 返回非目标网页 165
9.2.3 获取数据变难 166
9.3 如何“反反爬虫” 167
9.3.1 修改请求头 167
9.3.2 修改爬虫的间隔时间 168
9.3.3 使用代理 171
9.3.4 更换IP地址 172
9.3.5 登录获取数据 172
9.4 总结 172
第10章 解决中文乱码 173
10.1 什么是字符编码 174
10.2 Python的字符编码 176
10.3 解决中文编码问题 179
10.3.1 问题1:获取网站的中文显示乱码 179
10.3.2 问题2:非法字符抛出异常 180
10.3.3 问题3:网页使用gzip压缩 181
10.3.4 问题4:读写文件的中文乱码 182
10.4 总结 184
第11章 登录与验证码处理 185
11.1 处理登录表单 186
11.1.1 处理登录表单 186
11.1.2 处理cookies,让网页记住你的登录 190
11.1.3 完整的登录代码 193
11.2 验证码的处理 194
11.2.1 如何使用验证码验证 195
11.2.2 人工方法处理验证码 197
11.2.3 OCR处理验证码 200
11.3 总结 203
第12章 服务器采集 204
12.1 为什么使用服务器采集 205
12.1.1 大规模爬虫的需要 205
12.1.2 防止IP地址被封杀 205
12.2 使用动态IP拨号服务器 206
12.2.1 购买拨号服务器 206
12.2.2 登录服务器 206
12.2.3 使用Python更换IP 208
12.2.4 结合爬虫和更换IP功能 209
12.3 使用Tor代理服务器 210
12.3.1 Tor的安装 211
12.3.2 Tor的使用 213
第13章 分布式爬虫 218
13.1 安装Redis 219
13.2 修改Redis配置 222
13.2.1 修改Redis密码 222
13.2.2 让Redis服务器被远程访问 222
13.2.3 使用Redis Desktop Manager管理 223
13.3 Redis分布式爬虫实践 223
13.3.1 安装Redis库 224
13.3.2 加入任务队列 224
13.3.3 读取任务队列并下载图片 225
13.3.4 分布式爬虫代码 226
13.4 总结 228
第14章 爬虫实践一:维基百科 229
14.1 项目描述 230
14.1.1 项目目标 230
14.1.2 项目描述 230
14.1.3 深度优先和广度优先 232
14.2 网站分析 233
14.3 项目实施:深度优先的递归爬虫 235
14.4 项目进阶:广度优先的多线程爬虫 237
14.5 总结 241
第15章 爬虫实践二:知乎Live 242
15.1 项目描述 243
15.2 网站分析 243
15.3 项目实施 245
15.3.1 获取所有Live 245
15.3.2 获取Live的听众 248
15.4 总结 251
第16章 爬虫实践三:百度地图API 252
16.1 项目描述 253
16.2 获取API秘钥 254
16.3 项目实施 255
16.3.1 获取所有拥有公园的城市 257
16.3.2 获取所有城市的公园数据 258
16.3.3 获取所有公园的详细信息 262
16.4 总结 266
第17章 爬虫实践四:畅销书籍 267
17.1 项目描述 268
17.2 网站分析 268
17.3 项目实施 270
17.3.1 获取亚马逊的图书销售榜列表 270
17.3.2 获取所有分类的销售榜 274
17.3.3 获取图书的评论 276
17.4 总结 279

推荐

车牌查询
桂ICP备20004708号-3