¥ 25.57 2.6折 ¥ 99.8 九品
仅1件
作者明日科技 著
出版社清华大学出版社
出版时间2021-04
版次1
装帧平装
货号A5
上书时间2024-12-01
《Python网络爬虫从入门到精通》从初学者角度出发,通过通俗易懂的语言、丰富多彩的实例,详细介绍了使用Python实现网络爬虫开发应该掌握的技术。全书共分19章,内容包括初识网络爬虫、了解Web前端、请求模块urllib、请求模块urllib3、请求模块requests、高级网络请求模块、正则表达式、XPath解析、解析数据的BeautifulSoup、爬取动态渲染的信息、多线程与多进程爬虫、数据处理、数据存储、数据可视化、App抓包工具、识别验证码、Scrapy爬虫框架、Scrapy_Redis分布式爬虫、数据侦探。书中所有知识都结合具体实例进行介绍,涉及的程序代码给出了详细的注释,读者可轻松领会网络爬虫程序开发的精髓,快速提高开发技能。
明日科技,全称是吉林省明日科技有限公司,是一家专业从事软件开发、教育培训以及软件开发教育资源整合的高科技公司,其编写的教材非常注重选取软件开发中的必需、常用内容,同时也很注重内容的易学、方便性以及相关知识的拓展性,深受读者喜爱。其教材多次荣获“全行业优秀畅销品种”“全国高校出版社优秀畅销书”等奖项,多个品种长期位居同类图书销售排行榜的前列。
第1篇 基础知识
第1章 初识网络爬虫 2
1.1 网络爬虫概述 2
1.2 网络爬虫的分类 2
1.3 网络爬虫的基本原理 3
1.4 搭建开发环境 4
1.4.1 安装Anaconda 4
1.4.2 PyCharm的下载与安装 7
1.4.3 配置PyCharm 9
1.4.4 测试PyCharm 13
1.5 小结 15
第2章 了解Web前端 16
2.1 HTTP基本原理 16
2.1.1 HTTP协议 16
2.1.2 HTTP与Web服务器 16
2.1.3 浏览器中的请求和响应 18
2.2 HTML语言 19
2.2.1 什么是HTML 19
2.2.2 标签、元素、结构概述 19
2.2.3 HTML的基本标签 21
2.3 CSS层叠样式表 22
2.3.1 CSS概述 22
2.3.2 属性选择器 23
2.3.3 类和ID选择器 24
2.4 JavaScript动态脚本语言 24
2.5 小结 27
第3章 请求模块urllib 28
3.1 urllib简介 28
3.2 使用urlopen()方法发送请求 28
3.2.1 发送GET请求 29
3.2.2 发送POST请求 30
3.2.3 设置网络超时 31
3.3 复杂的网络请求 32
3.3.1 设置请求头 32
3.3.2 Cookies的获取与设置 34
3.3.3 设置代理IP 39
3.4 异常处理 40
3.5 解析链接 41
3.5.1 拆分URL 42
3.5.2 组合URL 43
3.5.3 连接URL 44
3.5.4 URL的编码与解码 45
3.5.5 URL参数的转换 46
3.6 小结 47
第4章 请求模块urllib3 48
4.1 urllib3简介 48
4.2 发送网络请求 49
4.2.1 GET请求 49
4.2.2 POST请求 50
4.2.3 重试请求 51
4.2.4 处理响应内容 51
4.3 复杂请求的发送 53
4.3.1 设置请求头 53
4.3.2 设置超时 54
4.3.3 设置代理 55
4.4 上传文件 56
4.5 小结 57
第5章 请求模块requests 58
5.1 请求方式 58
5.1.1 GET请求 59
5.1.2 对响应结果进行utf-8编码 59
5.1.3 爬取二进制数据 60
5.1.4 GET(带参)请求 61
5.1.5 POST请求 62
5.2 复杂的网络请求 63
5.2.1 添加请求头headers 63
5.2.2 验证Cookies 64
5.2.3 会话请求 65
5.2.4 验证请求 66
5.2.5 网络超时与异常 67
5.2.6 上传文件 68
5.3 代理服务 69
5.3.1 代理的应用 69
5.3.2 获取免费的代理IP 70
5.3.3 检测代理IP是否有效 71
5.4 小结 72
第6章 高级网络请求模块 73
6.1 Requests-Cache的安装与测试 73
6.2 缓存的应用 74
6.3 强大的Requests-HTML模块 76
6.3.1 使用Requests-HTML实现网络请求 76
6.3.2 数据的提取 78
6.3.3 获取动态加载的数据 82
6.4 小结 85
第2篇 核心技术
第7章 正则表达式 88
7.1 正则表达式基础 88
7.1.1 行定位符 88
7.1.2 元字符 89
7.1.3 限定符 89
7.1.4 字符类 90
7.1.5 排除字符 90
7.1.6 选择字符 90
7.1.7 转义字符 91
7.1.8 分组 91
7.1.9 在Python中使用正则表达式语法 91
7.2 使用match()进行匹配 92
7.2.1 匹配是否以指定字符串开头 93
7.2.2 匹配任意开头的字符串 94
7.2.3 匹配多个字符串 94
7.2.4 获取部分内容 94
7.2.5 匹配指定首尾的字符串 95
7.3 使用search()进行匹配 95
7.3.1 获取第一匹配值 96
7.3.2 可选匹配 96
7.3.3 匹配字符串边界 97
7.4 使用findall()进行匹配 97
7.4.1 匹配所有指定字符开头字符串 98
7.4.2 贪婪匹配 98
7.4.3 非贪婪匹配 99
7.5 字符串处理 100
7.5.1 替换字符串 100
7.5.2 分割字符串 101
7.6 案例:爬取编程e学网视频 102
7.6.1 查找视频页面 102
7.6.2 分析视频地址 103
7.6.3 实现视频下载 105
7.7 小结 105
第8章 XPath解析 106
8.1 XPath概述 106
8.2 XPath的解析操作 107
8.2.1 解析HTML 107
8.2.2 获取所有节点 109
8.2.3 获取子节点 110
8.2.4 获取父节点 112
8.2.5 获取文本 112
8.2.6 属性匹配 113
8.2.7 获取属性 115
8.2.8 按序获取 116
8.2.9 节点轴获取 117
8.3 案例:爬取豆瓣电影Top 250 118
8.3.1 分析请求地址 118
8.3.2 分析信息位置 119
8.3.3 爬虫代码的实现 120
8.4 小结 121
第9章 解析数据的BeautifulSoup 122
9.1 使用BeautifulSoup解析数据 122
9.1.1 BeautifulSoup的安装 122
9.1.2 解析器 123
9.1.3 BeautifulSoup的简单应用 124
9.2 获取节点内容 125
9.2.1 获取节点对应的代码 125
9.2.2 获取节点属性 126
9.2.3 获取节点包含的文本内容 127
9.2.4 嵌套获取节点内容 128
9.2.5 关联获取 129
9.3 方法获取内容 133
9.3.1 find_all()获取所有符合条件的内容 133
9.3.2 find()获取第一个匹配的节点内容 136
9.3.3 其他方法 137
9.4 CSS选择器 137
9.5 小结 140
第10章 爬取动态渲染的信息 141
10.1 Ajax数据的爬取 141
10.1.1 分析请求地址 141
10.1.2 提取视频标题与视频地址 144
10.1.3 视频的批量下载 145
10.2 使用Selenium爬取动态加载的信息 146
10.2.1 安装Selenium模块 146
10.2.2 下载浏览器驱动 147
10.2.3 Selenium模块的使用 147
10.2.4 Selenium模块的常用方法 149
10.3 Splash的爬虫应用 150
10.3.1 搭建Splash环境(Windows 10系统) 150
10.3.2 搭建Splash环境(Windows 7系统) 153
10.3.3 Splash中的HTTP API 156
10.3.4 执行lua自定义脚本 159
10.4 小结 160
第11章 多线程与多进程爬虫 161
11.1 什么是线程 161
11.2 创建线程 161
11.2.1 使用threading模块创建线程 162
11.2.2 使用Thread子类创建线程 163
11.3 线程间通信 163
11.3.1 什么是互斥锁 165
11.3.2 使用互斥锁 165
11.3.3 使用队列在线程间通信 167
11.4 什么是进程 169
11.5 创建进程的常用方式 169
11.5.1 使用multiprocessing模块创建进程 169
11.5.2 使用Process子类创建进程 172
11.5.3 使用进程池Pool创建进程 174
11.6 进程间通信 175
11.6.1 队列简介 177
11.6.2 多进程队列的使用 177
11.6.3 使用队列在进程间通信 179
11.7 多进程爬虫 180
11.8 小结 185
第12章 数据处理 186
12.1 初识Pandas 186
12.2 Series对象 187
12.2.1 图解Series对象 187
12.2.2 创建一个Series对象 188
12.2.3 手动设置Series索引 188
12.2.4 Series的索引 189
12.2.5 获取Series索引和值 190
12.3 DataFrame对象 190
12.3.1 图解DataFrame对象 191
12.3.2 创建一个DataFrame对象 192
12.3.3 DataFrame的重要属性和函数 194
12.4 数据的增、删、改、查 195
12.4.1 增加数据 195
12.4.2 删除数据 196
12.4.3 修改数据 197
12.4.4 查询数据 198
12.5 数据清洗 199
12.5.1 NaN数据处理 199
12.5.2 去除重复数据 202
12.6 数据转换 204
12.6.1 DataFrame转换为字典 204
12.6.2 DataFrame转换为列表 206
12.6.3 DataFrame转换为元组 206
12.7 导入外部数据 207
12.7.1 导入.xls或.xlsx文件 207
12.7.2 导入.csv文件 211
12.7.3 导入.txt文本文件 213
12.7.4 导入HTML网页 213
12.8 数据排序与排名 214
12.8.1 数据排序 214
12.8.2 数据排名 217
12.9 简单的数据计算 219
12.9.1 求和(sum函数) 219
12.9.2 求均值(mean函数) 220
12.9.3 求最大值(max函数) 221
12.9.4 求最小值(min函数) 221
12.10 数据分组统计 222
12.10.1 分组统计groupby函数 222
12.10.2 对分组数据进行迭代 224
12.10.3 通过字典和Series对象进行分组统计 225
12.11 日期数据处理 227
12.11.1 DataFrame的日期数据转换 227
12.11.2 dt对象的使用 229
12.11.3 获取日期区间的数据 230
12.11.4 按不同时期统计并显示数据 231
12.12 小结 233
第13章 数据存储 234
13.1 文件的存取 234
13.1.1 基本文件操作TXT 234
13.1.2 存储CSV文件 239
13.1.3 存储Excel文件 240
13.2 SQLite数据库 241
13.2.1 创建数据库文件 242
13.2.2 操作SQLite 242
13.3 MySQL数据库 244
13.3.1 下载与安装MySQL 244
13.3.2 安装PyMySQL 248
13.3.3 连接数据库 249
13.3.4 创建数据表 250
13.3.5 操作MySQL数据表 251
13.4 小结 252
第3篇 高级应用
第14章 数据可视化 254
14.1 Matplotlib概述 254
14.1.1 Matplotlib简介 254
14.1.2 安装Matplotlib 257
14.2 图表的常用设置 258
14.2.1 基本绘图plot函数 258
14.2.2 设置画布 261
14.2.3 设置坐标轴 262
14.2.4 添加文本标签 265
14.2.5 设置标题和图例 266
14.2.6 添加注释 268
14.3 常用图表的绘制 269
14.3.1 绘制折线图 270
14.3.2 绘制柱形图 271
14.3.3 绘制饼形图 273
14.4 案例:可视化二手房数据查询系统 278
14.5 小结 285
第15章 App抓包工具 286
15.1 Charles工具的下载与安装 286
15.2 SSL证书的安装 288
15.2.1 安装PC端证书 288
15.2.2 设置代理 291
15.2.3 配置网络 292
15.2.4 安装手机端证书 294
15.3 小结 296
第16章 识别验证码 297
16.1 字符验证码 297
16.1.1 搭建OCR环境 297
16.1.2 下载验证码图片 298
16.1.3 识别验证码 299
16.2 第三方验证码识别 301
16.3 滑动拼图验证码 305
16.4 小结 307
第17章 Scrapy爬虫框架 308
17.1 了解Scrapy爬虫框架 308
17.2 搭建Scrapy爬虫框架 309
17.2.1 使用Anaconda安装Scrapy 309
17.2.2 Windows系统下配置Scrapy 310
17.3 Scrapy的基本应用 312
17.3.1 创建Scrapy项目 312
17.3.2 创建爬虫 313
17.3.3 获取数据 316
17.3.4 将爬取的数据保存为多种格式的文件 318
17.4 编写Item Pipeline 319
17.4.1 项目管道的核心方法 319
17.4.2 将信息存储至数据库 320
17.5 自定义中间件 324
17.5.1 设置随机请求头 325
17.5.2 设置Cookies 327
17.5.3 设置代理ip 330
17.6 文件下载 332
17.7 小结 334
第18章 Scrapy_Redis分布式爬虫 335
18.1 安装Redis数据库 335
18.2 Scrapy-Redis模块 337
18.3 分布式爬取中文日报新闻数据 338
18.3.1 分析网页地址 338
18.3.2 创建MySQL数据表 339
18.3.3 创建Scrapy项目 340
18.3.4 启动分布式爬虫 344
18.4 自定义分布式爬虫 348
18.5 小结 354
第4篇 项目实战
第19章 数据侦探 356
19.1 需求分析 356
19.2 系统设计 356
19.2.1 系统功能结构 356
19.2.2 系统业务流程 357
19.2.3 系统预览 358
19.3 系统开发必备 360
19.3.1 开发工具准备 360
19.3.2 文件夹组织结构 360
19.4 主窗体的UI设计 361
19.4.1 主窗体的布局 361
19.4.2 主窗体显示效果 363
19.5 设计数据库表结构 364
19.6 爬取数据 365
19.6.1 获取京东商品热卖排行信息 365
19.6.2 获取价格信息 370
19.6.3 获取评价信息 372
19.6.4 定义数据库操作文件 375
19.7 主窗体的数据展示 378
19.7.1 显示前10名热卖榜图文信息 378
19.7.2 显示关注商品列表 382
19.7.3 显示商品分类比例饼图 389
19.8 外设产品热卖榜 392
19.9 商品预警 395
19.9.1 关注商品中、差评预警 395
19.9.2 关注商品价格变化预警 398
19.9.3 更新关注商品信息 400
19.10 系统功能 401
19.11 小结 403
— 没有更多了 —
以下为对购买帮助不大的评价