[套装书]Python爬虫、数据分析与可视化:工具详解与案例实战+从零开始学Python网络爬虫(2册)

作者
成立明 胡书敏 黄勇 罗攀 蒋仟
丛书名
出版社
机械工业出版社
ISBN
9782011181410
简要
简介
内容简介书籍计算机书籍 ---------------------------Python爬虫、数据分析与可视化:工具详解与案例实战--------------------------- 全书共13章。第1~4章为基础篇,主要讲述Python基础知识、Python数据结构、面向对象程序设计思想,Python异常处理和读写文件的技巧;第5~7章为数据分析的工具篇,主要讲述Numpy库、Pandas库和Matplotlib库的基本功能和应用;第8章和第9章为“数据分析高级技能篇”,主要讲述通过爬取技术博客案例、基于Scrapy爬虫框架的实用技巧、数据分析的常用方法,如Python连接操作数据库的相关技能,基于时间序列、概率分析、推断统计和回归分析方法的数学分析方法;第10~13章为“综合案例篇”,主要讲述二手房数据分析案例、股票数据分析案例以及基于Sklearn库的机器学习相关实践。 ---------------------------从零开始学Python网络爬虫--------------------------- Python是数据分析的语言,而网络中的数据和信息很多,如何从中获取需要的数据和信息呢?简单、直接的方法就是用爬虫技术来解决。本书是一本教初学者学习如何爬取网络数据和信息的入门读物。书中不仅有Python的相关内容,而且还有数据处理和数据挖掘等方面的内容。本书内容非常实用,讲解时穿插了22个爬虫实战案例,可以大大提高读者的实际动手能力。本书共分12章,核心主题包括Python零基础语法入门、爬虫原理和网页构造、我的第壹个爬虫程序、正则表达式、Lxml库与Xpath语法、使用API、数据库存储、多进程爬虫、异步加载、表单交互与模拟登录、Selenium模拟浏览器、Scrapy爬虫框架。此外,书中通过一些典型爬虫案例,讲解了有经纬信息的地图图表和词云的制作方法,让读者体验数据背后的乐趣。本书适合爬虫技术初学者、爱好者及高等院校的相关学生,也适合数据爬虫工程师作为参考读物,同时也适合各大Python数据分析的培训机构作为教材使用。
目录



---------------------------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网络爬虫---------------------------


前言
第1章 Python零基础语法入门 1
1.1 Python与PyCharm安装 1
1.1.1 Python安装(Windows、Mac和Linux) 1
1.1.2 PyCharm安装 3
1.2 变量和字符串 3
1.2.1 变量 4
1.2.2 字符串的“加法”和“乘法” 4
1.2.3 字符串的切片和索引 5
1.2.4 字符串方法 5
1.3 函数与控制语句 7
1.3.1 函数 7
1.3.2 判断语句 8
1.3.3 循环语句 8
1.4 Python数据结构 9
1.4.1 列表 9
1.4.2 字典 11
1.4.3 元组和集合 11
1.5 Python文件操作 11
1.5.1 打开文件 11
1.5.2 读写文件 12
1.5.3 关闭文件 13
1.6 Python面向对象 13
1.6.1 定义类 14
1.6.2 实例属性 14
1.6.3 实例方法 15
1.6.4 类的继承 16
第2章 爬虫原理和网页构造 17
2.1 爬虫原理 17
2.1.1 网络连接 17
2.1.2 爬虫原理 18
2.2 网页构造 21
2.2.1 Chrome浏览器的安装 21
2.2.2 网页构造 22
2.2.3 查询网页信息 23
第3章 我的第一个爬虫程序 26
3.1 Python第三方库 26
3.1.1 Python第三方库的概念 26
3.1.2 Python第三方库的安装方法 27
3.1.3 Python第三方库的使用方法 29
3.2 爬虫三大库 30
3.2.1 Requests库 30
3.2.2 BeautifulSoup库 32
3.2.3 Lxml库 36
3.3 综合案例1——爬取北京地区短租房信息 37
3.3.1 爬虫思路分析 37
3.3.2 爬虫代码及分析 38
3.4 综合案例2——爬取酷狗TOP500的数据 41
3.4.1 爬虫思路分析 41
3.4.2 爬虫代码及分析 43
第4章 正则表达式 45
4.1 正则表达式常用符号 45
4.1.1 一般字符 45
4.1.2 预定义字符集 46
4.1.3 数量词 46
4.1.4 边界匹配 47
4.2 re模块及其方法 48
4.2.1 search()函数 48
4.2.2 sub()函数 49
4.2.3 findall()函数 49
4.2.4 re模块修饰符 51
4.3 综合案例1——爬取《斗破苍穹》全文小说 53
4.3.1 爬虫思路分析 53
4.3.2 爬虫代码及分析 55
4.4 综合案例2——爬取糗事百科网的段子信息 56
4.4.1 爬虫思路分析 56
4.4.2 爬虫代码及分析 58
第5章 Lxml库与Xpath语法 63
5.1 Lxml库的安装与使用方法 63
5.1.1 Lxml库的安装(Mac、Linux) 63
5.1.2 Lxml库的使用 64
5.2 Xpath语法 68
5.2.1 节点关系 68
5.2.2 节点选择 70
5.2.3 使用技巧 70
5.2.4 性能对比 74
5.3 综合案例1——爬取豆瓣网图书TOP250的数据 77
5.3.1 将数据存储到CSV文件中 77
5.3.2 爬虫思路分析 78
5.3.3 爬虫代码及分析 80
5.4 综合案例2——爬取起点中文网小说信息 83
5.4.1 将数据存储到Excel文件中 83
5.4.2 爬虫思路分析 84
5.4.3 爬虫代码及分析 86
第6章 使用API 88
6.1 API的使用 88
6.1.1 API概述 88
6.1.2 API使用方法 89
6.1.3 API验证 91
6.2 解析JSON数据 93
6.2.1 JSON解析库 93
6.2.2 斯必克API调用 94
6.2.3 百度地图API调用 96
6.3 综合案例1——爬取PEXELS图片 98
6.3.1 图片爬取方法 98
6.3.2 爬虫思路分析 99
6.3.3 爬虫代码及分析 100
6.4 综合案例2——爬取糗事百科网的用户地址信息 102
6.4.1 地图的绘制 102
6.4.2 爬取思路分析 105
6.4.3 爬虫代码及分析 106
第7章 数据库存储 109
7.1 MongoDB数据库 109
7.1.1 NoSQL概述 109
7.1.2 MongoDB的安装 109
7.1.3 MongoDB的使用 115
7.2 MySQL数据库 117
7.2.1 关系型数据库概述 117
7.2.2 MySQL的安装 117
7.2.3 MySQL的使用 123
7.3 综合案例1——爬取豆瓣音乐TOP250的数据 126
7.3.1 爬虫思路分析 126
7.3.2 爬虫代码及分析 127
7.4 综合案例2——爬取豆瓣电影TOP250的数据 132
7.4.1 爬虫思路分析 132
7.4.2 爬虫代码及分析 133
第8章 多进程爬虫 139
8.1 多线程与多进程 139
8.1.1 多线程和多进程概述 139
8.1.2 多进程使用方法 140
8.1.3 性能对比 140
8.2 综合案例1——爬取简书网热评文章 143
8.2.1 爬虫思路分析 143
8.2.2 爬虫代码及分析 147
8.3 综合案例2——爬取转转网二手市场商品信息 150
8.3.1 爬虫思路分析 150
8.3.2 爬虫代码及分析 152
第9章 异步加载 159
9.1 异步加载技术与爬虫方法 159
9.1.1 异步加载技术概述 159
9.1.2 异步加载网页示例 159
9.1.3 逆向工程 162
9.2 综合案例1——爬取简书网用户动态信息 165
9.2.1 爬虫思路分析 165
9.2.2 爬虫代码及分析 171
9.3 综合案例2——爬取简书网7日热门信息 173
9.3.1 爬虫思路分析 173
9.3.2 爬虫代码及分析 179
第10章 表单交互与模拟登录 182
10.1 表单交互 182
10.1.1 POST方法 182
10.1.2 查看网页源代码提交表单 182
10.1.3 逆向工程提交表单 185
10.2 模拟登录 187
10.2.1 Cookie概述 187
10.2.2 提交Cookie模拟登录 187
10.3 综合案例1——爬取拉勾网招聘信息 188
10.3.1 爬虫思路分析 188
10.3.2 爬虫代码及分析 193
10.4 综合案例2——爬取新浪微博好友圈信息 195
10.4.1 词云制作 195
10.4.2 爬虫思路分析 202
10.4.3 爬虫代码及分析 206
第11章 Selenium模拟浏览器 209
11.1 Selenium和PhantomJS 209
11.1.1 Selenium的概念和安装 209
11.1.2 浏览器的选择和安装 209
11.2 Selenium和PhantomJS的配合使用 213
11.2.1 模拟浏览器操作 213
11.2.2 获取异步加载数据 215
11.3 综合案例1——爬取QQ空间好友说说 218
11.3.1 CSV文件读取 218
11.3.2 爬虫思路分析 220
11.3.3 爬虫代码及分析 221
11.4 综合案例2——爬取淘宝商品信息 224
11.4.1 爬虫思路分析 224
11.4.2 爬虫代码及分析 226
第12章 Scrapy爬虫框架 229
12.1 Scrapy的安装和使用 229
12.1.1 Scrapy的安装 229
12.1.2 创建Scrapy项目 233
12.1.3 Scrapy文件介绍 235
12.1.4 Scrapy爬虫编写 237
12.1.5 Scrapy爬虫运行 239
12.2 综合案例1——爬取简书网热门专题信息 240
12.2.1 爬虫思路分析 240
12.2.2 爬虫代码及分析 244
12.3 综合案例2——爬取知乎网Python精华话题 246
12.3.1 爬虫思路分析 246
12.3.2 爬虫代码及分析 248
12.4 综合案例3——爬取简书网专题收录文章 250
12.4.1 爬虫思路分析 251
12.4.2 爬虫代码及分析 254
12.5 综合案例4——爬取简书网推荐信息 257
12.5.1 爬虫思路分析 258
12.5.2 爬虫代码及分析 260

推荐

车牌查询
桂ICP备20004708号-3