商品详情
书名:Python3网络爬虫宝典
定价:79.0
ISBN:9787121394065
作者:韦世东
版次:第1版
出版时间:2020-09
内容提要:
Python3是当前市面上极受欢迎的人工智能和网络爬虫语言。本书介绍了爬虫方面更深入的知识。书中首先回顾了爬虫的基础知识;然后详细介绍爬虫常用工具与库的相关知识;接着学习 Redis, 为后面的学习打下基础;然后讨论了 Redis 在分布式爬虫中的作用以及分布式爬虫的原理、分类与实现方法;再进一步学习增量爬取的原理与实现方法;然后通过学习网页文本抽取方法和智能抽取方法实现了大规模、多网站的数据爬取;在部署方面通过了解、剖析成熟稳定的爬虫部署平台 Scrapyd,并根据实际业务需求重新构建了一套兼容性更强的爬虫部署平台;*后学习了 Python 中常用的几个任务调度库与框架,通过了解 Celery 逻辑与结构,我们掌握了调度相关的知识,并根据实际业务需求构建了一套支持动态任务增删的任务调度平台。
作者简介:
韦世东 资深爬虫工程师、2019 华为云·云享专家、掘金社区优秀作者、GitChat 认证作者、夜幕团队(Night Team)成员、《Python3 反爬虫原理与绕过实战》作者,对反爬虫和逆向有研究,精通爬虫架构设计和工程链路实践,搭建过日流量亿级的爬虫架构。
目录:
目录
第1 章 爬虫程序的构成和完整链条 ........................................................................ 1
1.1 一个简单的爬虫程序 ................................................................................ 1
1.2 爬虫的完整链条 ........................................................................................ 3
1.3 爬取下来的数据被用在什么地方 ............................................................ 7
1.4 爬虫工程师常用的库 .............................................................................. 11
1.4.1 网络请求库 .................................................................................. 11
1.4.2 网页文本解析............................................................................... 19
1.5 数据存储 .................................................................................................. 30
1.5.1 将数据存入MySQL 数据库 ........................................................ 31
1.5.2 将数据存入MongoDB 数据库 .................................................... 34
1.5.3 将数据存入Redis 数据库 ............................................................ 36
1.5.4 Excel 文件的读写 ........................................................................ 38
1.6 小试牛刀——出版社新闻资讯爬虫 ....................................................... 42
实践题 ............................................................................................................... 46
本章小结 ........................................................................................................... 47
第2 章 自动化工具的使用 ...................................................................................... 48
2.1 网页渲染工具 .......................................................................................... 48
2.1.1 WebDriver 是什么 ........................................................................ 51
2.1.2 Selenium 的介绍和基本使用 ....................................................... 52
2.1.3 Pyppeteer 的介绍和基本使用 ...................................................... 59
2.1.4 Splash 知识扩展 ........................................................................... 61
本节小结 .................................................................................................. 62
2.2 App 自动化工具 ...................................................................................... 62
2.2.1 Android 调试桥 ............................................................................ 62
2.2.2 Airtest Project 与Poco ................................................................. 64
VIII Python3 网络爬虫宝典
2.2.3 爬取App 中的图片 ...................................................................... 75
2.2.4 控制多台设备............................................................................... 78
本节小结 .................................................................................................. 79
实践题 ............................................................................................................... 79
本章小结 ........................................................................................................... 79
第3 章 增量爬取的原理与实现 .............................................................................. 80
3.1 增量爬取的分类和实现原理 .................................................................. 81
3.1.1 增量爬取的分类 ........................................................................... 81
3.1.2 增量爬取的实现原理 ................................................................... 83
本节小结 .................................................................................................. 88
3.2 增量池的复杂度和效率 .......................................................................... 88
3.2.1 增量池的时间复杂度 ................................................................... 88
3.2.2 增量池的空间复杂度 ................................................................... 95
本节小结 ................................................................................................ 103
3.3 Redis 的数据持久化 .............................................................................. 103
3.3.1 持久化方式的分类和特点 ......................................................... 103
3.3.2 RDB 持久化的实践 ................................................................... 106
3.3.3 AOF 持久化的实践 .................................................................... 112
3.3.4 Redis 密码持久化 ...................................................................... 115
本节小结 ................................................................................................ 115
实践题 ............................................................................................................. 115
本章小结 ......................................................................................................... 116
第4 章 分布式爬虫的设计与实现 ........................................................................ 117
4.1 分布式爬虫的原理和分类 .................................................................... 117
4.1.1 分布式爬虫的原理 ..................................................................... 117
4.1.2 分布式爬虫的分类 ..................................................................... 120
4.1.3 共享队列的选择 ......................................................................... 122
本节小结 ................................................................................................ 125
4.2 分布式爬虫库Scrapy-Redis .................................................................. 126
4.2.1 Scrapy-Redis 的介绍和基本使用 .............................................. 127
4.2.2 去重器、调度器和队列的源码解析 ......................................... 129
目录 IX
本节小结 ................................................................................................ 134
4.3 基于Redis 的分布式爬虫 ..................................................................... 134
4.3.1 对等分布式爬虫的实现 ............................................................. 135
4.3.2 主从分布式爬虫的实现 ............................................................. 139
本节小结 ................................................................................................ 141
4.4 基于RabbitMQ 的分布式爬虫 ............................................................. 141
4.4.1 RabbitMQ 的安装和基本操作 ................................................... 142
4.4.2 分布式爬虫的具体实现 ............................................................. 146
本节小结 ................................................................................................ 152
实践题 ............................................................................................................. 152
本章小结 ......................................................................................................... 152
第5 章 网页正文自动化提取方法 ........................................................................ 153
5.1 Python Readability ................................................................................. 155
5.2 基于文本及符号密度的网页正文提取方法 ......................................... 158
5.3 GeneralNewsExtractor ............................................................................ 162
5.3.1 GeneralNewsExtractor 的安装和使用 ....................................... 162
5.3.2 GeneralNewsExtractor 的源码解读 ........................................... 165
本节小结 ................................................................................................ 175
本章小结 ......................................................................................................... 175
第6 章 Python 项目打包部署与定时调度 ........................................................... 176
6.1 如何判断项目是否需要部署 ................................................................ 176
6.2 爬虫部署平台Scrapyd .......................................................................... 179
6.2.1 Scrapyd 的安装和服务启动 ....................................................... 179
6.2.2 爬虫项目的打包和部署 ............................................................. 180
本节小结 ................................................................................................ 184
6.3 Scrapyd 源码深度剖析 .......................................................................... 185
6.4 项目打包与解包运行实战 .................................................................... 197
6.4.1 用Setuptools 打包项目 .............................................................. 197
6.4.2 运行EGG 包中的Python 项目 ................................................. 199
6.4.3 编码实现Python 项目打包 ....................................................... 201
本节小结 ................................................................................................ 203
X Python3 网络爬虫宝典
6.5 定时功能 ................................................................................................ 203
6.5.1 操作系统提供的定时功能 ......................................................... 203
6.5.2 编程语言实现的定时功能 ......................................................... 206
6.5.3 APScheduler ............................................................................... 209
本节小结 ................................................................................................ 212
6.6 实战:开发Python 项目管理平台Sailboat ......................................... 212
6.6.1 Sailboat 的模块规划和技术选型 ............................................... 212
6.6.2 Sailboat 的权限设计思路 ........................................................... 214
6.6.3 Sailboat 的数据结构设计 ........................................................... 215
6.6.4 Sailboat 基础结构的搭建 ........................................................... 218
6.6.5 Sailboat 用户注册和登录接口的编写 ....................................... 220
6.6.6 Sailboat 权限验证装饰器的编写 ............................................... 229
6.6.7 Sailboat 项目部署接口和文件操作对象的编写 ....................... 232
6.6.8 Sailboat 项目调度接口的编写 ................................................... 240
6.6.9 Sailboat 执行器的编写和日志的生成 ....................................... 243
6.6.10 Sailboat 定时调度功能的实现 ................................................. 248
6.6.11 Sailboat 异常监控和钉钉机器人通知功能的编写 ................. 249
本节小结 ................................................................................................ 258
6.7 分布式调度平台Crawlab 核心架构解析 ............................................. 259
实践题 ............................................................................................................. 262
本章小结 ......................................................................................................... 262
定价:79.0
ISBN:9787121394065
作者:韦世东
版次:第1版
出版时间:2020-09
内容提要:
Python3是当前市面上极受欢迎的人工智能和网络爬虫语言。本书介绍了爬虫方面更深入的知识。书中首先回顾了爬虫的基础知识;然后详细介绍爬虫常用工具与库的相关知识;接着学习 Redis, 为后面的学习打下基础;然后讨论了 Redis 在分布式爬虫中的作用以及分布式爬虫的原理、分类与实现方法;再进一步学习增量爬取的原理与实现方法;然后通过学习网页文本抽取方法和智能抽取方法实现了大规模、多网站的数据爬取;在部署方面通过了解、剖析成熟稳定的爬虫部署平台 Scrapyd,并根据实际业务需求重新构建了一套兼容性更强的爬虫部署平台;*后学习了 Python 中常用的几个任务调度库与框架,通过了解 Celery 逻辑与结构,我们掌握了调度相关的知识,并根据实际业务需求构建了一套支持动态任务增删的任务调度平台。
作者简介:
韦世东 资深爬虫工程师、2019 华为云·云享专家、掘金社区优秀作者、GitChat 认证作者、夜幕团队(Night Team)成员、《Python3 反爬虫原理与绕过实战》作者,对反爬虫和逆向有研究,精通爬虫架构设计和工程链路实践,搭建过日流量亿级的爬虫架构。
目录:
目录
第1 章 爬虫程序的构成和完整链条 ........................................................................ 1
1.1 一个简单的爬虫程序 ................................................................................ 1
1.2 爬虫的完整链条 ........................................................................................ 3
1.3 爬取下来的数据被用在什么地方 ............................................................ 7
1.4 爬虫工程师常用的库 .............................................................................. 11
1.4.1 网络请求库 .................................................................................. 11
1.4.2 网页文本解析............................................................................... 19
1.5 数据存储 .................................................................................................. 30
1.5.1 将数据存入MySQL 数据库 ........................................................ 31
1.5.2 将数据存入MongoDB 数据库 .................................................... 34
1.5.3 将数据存入Redis 数据库 ............................................................ 36
1.5.4 Excel 文件的读写 ........................................................................ 38
1.6 小试牛刀——出版社新闻资讯爬虫 ....................................................... 42
实践题 ............................................................................................................... 46
本章小结 ........................................................................................................... 47
第2 章 自动化工具的使用 ...................................................................................... 48
2.1 网页渲染工具 .......................................................................................... 48
2.1.1 WebDriver 是什么 ........................................................................ 51
2.1.2 Selenium 的介绍和基本使用 ....................................................... 52
2.1.3 Pyppeteer 的介绍和基本使用 ...................................................... 59
2.1.4 Splash 知识扩展 ........................................................................... 61
本节小结 .................................................................................................. 62
2.2 App 自动化工具 ...................................................................................... 62
2.2.1 Android 调试桥 ............................................................................ 62
2.2.2 Airtest Project 与Poco ................................................................. 64
VIII Python3 网络爬虫宝典
2.2.3 爬取App 中的图片 ...................................................................... 75
2.2.4 控制多台设备............................................................................... 78
本节小结 .................................................................................................. 79
实践题 ............................................................................................................... 79
本章小结 ........................................................................................................... 79
第3 章 增量爬取的原理与实现 .............................................................................. 80
3.1 增量爬取的分类和实现原理 .................................................................. 81
3.1.1 增量爬取的分类 ........................................................................... 81
3.1.2 增量爬取的实现原理 ................................................................... 83
本节小结 .................................................................................................. 88
3.2 增量池的复杂度和效率 .......................................................................... 88
3.2.1 增量池的时间复杂度 ................................................................... 88
3.2.2 增量池的空间复杂度 ................................................................... 95
本节小结 ................................................................................................ 103
3.3 Redis 的数据持久化 .............................................................................. 103
3.3.1 持久化方式的分类和特点 ......................................................... 103
3.3.2 RDB 持久化的实践 ................................................................... 106
3.3.3 AOF 持久化的实践 .................................................................... 112
3.3.4 Redis 密码持久化 ...................................................................... 115
本节小结 ................................................................................................ 115
实践题 ............................................................................................................. 115
本章小结 ......................................................................................................... 116
第4 章 分布式爬虫的设计与实现 ........................................................................ 117
4.1 分布式爬虫的原理和分类 .................................................................... 117
4.1.1 分布式爬虫的原理 ..................................................................... 117
4.1.2 分布式爬虫的分类 ..................................................................... 120
4.1.3 共享队列的选择 ......................................................................... 122
本节小结 ................................................................................................ 125
4.2 分布式爬虫库Scrapy-Redis .................................................................. 126
4.2.1 Scrapy-Redis 的介绍和基本使用 .............................................. 127
4.2.2 去重器、调度器和队列的源码解析 ......................................... 129
目录 IX
本节小结 ................................................................................................ 134
4.3 基于Redis 的分布式爬虫 ..................................................................... 134
4.3.1 对等分布式爬虫的实现 ............................................................. 135
4.3.2 主从分布式爬虫的实现 ............................................................. 139
本节小结 ................................................................................................ 141
4.4 基于RabbitMQ 的分布式爬虫 ............................................................. 141
4.4.1 RabbitMQ 的安装和基本操作 ................................................... 142
4.4.2 分布式爬虫的具体实现 ............................................................. 146
本节小结 ................................................................................................ 152
实践题 ............................................................................................................. 152
本章小结 ......................................................................................................... 152
第5 章 网页正文自动化提取方法 ........................................................................ 153
5.1 Python Readability ................................................................................. 155
5.2 基于文本及符号密度的网页正文提取方法 ......................................... 158
5.3 GeneralNewsExtractor ............................................................................ 162
5.3.1 GeneralNewsExtractor 的安装和使用 ....................................... 162
5.3.2 GeneralNewsExtractor 的源码解读 ........................................... 165
本节小结 ................................................................................................ 175
本章小结 ......................................................................................................... 175
第6 章 Python 项目打包部署与定时调度 ........................................................... 176
6.1 如何判断项目是否需要部署 ................................................................ 176
6.2 爬虫部署平台Scrapyd .......................................................................... 179
6.2.1 Scrapyd 的安装和服务启动 ....................................................... 179
6.2.2 爬虫项目的打包和部署 ............................................................. 180
本节小结 ................................................................................................ 184
6.3 Scrapyd 源码深度剖析 .......................................................................... 185
6.4 项目打包与解包运行实战 .................................................................... 197
6.4.1 用Setuptools 打包项目 .............................................................. 197
6.4.2 运行EGG 包中的Python 项目 ................................................. 199
6.4.3 编码实现Python 项目打包 ....................................................... 201
本节小结 ................................................................................................ 203
X Python3 网络爬虫宝典
6.5 定时功能 ................................................................................................ 203
6.5.1 操作系统提供的定时功能 ......................................................... 203
6.5.2 编程语言实现的定时功能 ......................................................... 206
6.5.3 APScheduler ............................................................................... 209
本节小结 ................................................................................................ 212
6.6 实战:开发Python 项目管理平台Sailboat ......................................... 212
6.6.1 Sailboat 的模块规划和技术选型 ............................................... 212
6.6.2 Sailboat 的权限设计思路 ........................................................... 214
6.6.3 Sailboat 的数据结构设计 ........................................................... 215
6.6.4 Sailboat 基础结构的搭建 ........................................................... 218
6.6.5 Sailboat 用户注册和登录接口的编写 ....................................... 220
6.6.6 Sailboat 权限验证装饰器的编写 ............................................... 229
6.6.7 Sailboat 项目部署接口和文件操作对象的编写 ....................... 232
6.6.8 Sailboat 项目调度接口的编写 ................................................... 240
6.6.9 Sailboat 执行器的编写和日志的生成 ....................................... 243
6.6.10 Sailboat 定时调度功能的实现 ................................................. 248
6.6.11 Sailboat 异常监控和钉钉机器人通知功能的编写 ................. 249
本节小结 ................................................................................................ 258
6.7 分布式调度平台Crawlab 核心架构解析 ............................................. 259
实践题 ............................................................................................................. 262
本章小结 ......................................................................................................... 262
- 电子工业出版社有限公司
- 电子工业出版社有限公司有赞官方供货商,为客户提供一流的知识产品及服务。
- 扫描二维码,访问我们的微信店铺