
内容简介:
《Python网络爬虫项目开发全程实录》精选 11个热门的网络爬虫项目,突出了实用性。具体项目包含:智能破解验证码、手机数据爬取精灵、汽车之家图片抓取工具、高清壁纸快车(多线程版)、多进程影视猎手、分布式爬取动态新闻数据、世界 500 强数据爬取与分析、二手房信息智能抓取分析系统、图书热销侦探、APP 数据采集先锋、微信智能机器人。本书从软件工程的角度出发,按照项目开发的顺序,系统、全面地讲解每一个项目的开发实现过程。体例上,每章一个项目,统一采用“开发背景一系统设计一技术准备一各功能模块的设计与实现一项目运行一源码下载”的形式完整呈现项目,让读者快速积累实际项目经验与技巧,早日实现就业目标。
作者简介:
明日科技,全称是吉林省明日科技有限公司,是一家专业从事软件开发、教育培训以及软件开发教育资源整合的高科技公司,其编写的教材非常注重选取软件开发中的必需、常用内容,同时也很注重内容的易学、方便性以及相关知识的拓展性,深受读者喜爱。其教材多次荣获“全行业优秀畅销品种”“全国高校出版社优秀畅销书”等奖项,多个品种长期位居同类图书销售排行榜的前列。
目 录:
第 1 章 智能破解验证码 1
——re 正则表达式 requests BeautifulSoup(bs4) Pillow tesserocr selenium
1.1 开发背景 1
1.2 系统设计 2
1.2.1 开发环境 2
1.2.2 业务流程 2
1.2.3 功能结构 3
1.3 技术准备 3
1.3.1 技术概览 3
1.3.2 Pillow 模块的使用 4
1.3.3 tesserocr 模块的使用 4
1.3.4 Selenium 自动化测试工具的使用 6
1.4 功能设计 7
1.4.1 破解字符验证码 7
1.4.2 破解滑动拼图验证码 9
1.4.3 第三方平台识别验证码 11
1.5 项目运行 15
1.6 源码下载 16
第 2 章 手机数据爬取精灵 17
——random time PyMySQL requests_html
2.1 开发背景 17
2.2 系统设计 18
2.2.1 开发环境 18
2.2.2 业务流程 18
2.2.3 功能结构 18
2.3 技术准备 19
2.3.1 技术概览 19
2.3.2 random 模块的使用 20
2.3.3 time 模块的使用 21
2.3.4 requests_html 模块的使用 22
2.4 数据库设计 23
2.5 功能设计 24
2.5.1 分析手机数据网页中的分页规律 24
2.5.2 分析手机详情页地址 25
2.5.3 确认手机详情页中的各项信息对应的位置 26
2.5.4 导入模块 26
2.5.5 定义公共变量 26
2.5.6 实现爬取数据并插入数据库功能 27
2.5.7 实现下载手机图片功能 29
2.5.8 定义程序入口 29
2.6 项目运行 29
2.7 源码下载 32
第 3 章 汽车之家图片爬取工具 33
——文件读写 文件夹操作 urllib BeautifulSoup(bs4) PyQt5 Pillow
3.1 开发背景 33
3.2 系统设计 34
3.2.1 开发环境 34
3.2.2 业务流程 34
3.2.3 功能结构 34
3.3 技术准备 35
3.3.1 技术概览 35
3.3.2 使用 PyQt5 设计 Python 窗体程序 36
3.4 设计主窗体 41
3.5 功能设计 44
3.5.1 模块导入 44
3.5.2 通过爬虫爬取并保存图片 44
3.5.3 在主窗体中调用爬虫方法 47
3.5.4 分类查看爬取的汽车图片 48
3.5.5 单击查看大图 50
3.6 项目运行 51
3.7 源码下载 52
第 4 章 高清壁纸快车(多线程版) 53
——文件读写 requests BeautifulSoup4(bs4) PyQt5 concurrent.futur
4.1 开发背景 53
4.2 系统设计 54
4.2.1 开发环境 54
4.2.2 业务流程 54
4.2.3 功能结构 54
4.3 技术准备 55
4.3.1 技术概览 55
4.3.2 concurrent.futures 模块的使用 56
4.4 设计主窗体 58
4.5 功能设计 60
4.5.1 模块导入 60
4.5.2 多线程爬取并保存高清壁纸 60
4.5.3 在 PyQt5 窗体中调用爬虫方法 64
4.5.4 使用列表显示爬取的所有高清壁纸名称 65
4.5.5 在 PyQt5 窗体中查看爬取的高清壁纸 66
4.6 项目运行 67
4.7 源码下载 68
第 5 章 多进程影视猎手 69
——requests BeautifulSoup(bs4) re 正则表达式 fake_useragent multiprocessing PyMySQ
5.1 开发背景 69
5.2 系统设计 70
5.2.1 开发环境 70
5.2.2 业务流程 70
5.2.3 功能结构 70
5.3 技术准备 71
5.3.1 技术概览 71
5.3.2 fake_useragent 模块的使用 72
5.4 数据库设计 73
5.5 功能设计 74
5.5.1 分析网页请求地址 74
5.5.2 获取电影详情页地址 75
5.5.3 爬取电影详细信息 76
5.5.4 将爬取的数据添加到数据库中 78
5.5.5 定义程序入口 79
5.6 项目运行 80
5.7 源码下载 82
第 6 章 分布式爬取动态新闻数据 83
——Scrapy Scrapy-Redis PyMySQL Redis
6.1 开发背景 83
6.2 系统设计 84
6.2.1 开发环境 84
6.2.2 业务流程 84
6.2.3 功能结构 85
6.3 技术准备 85
6.3.1 技术概览 85
6.3.2 Redis 数据库的使用 86
6.3.3 Scrapy-Redis 模块 87
6.4 创建数据表 88
6.5 功能设计 89
6.5.1 分析请求地址 90
6.5.2 创建随机请求头 90
6.5.3 创建数据对象 91
6.5.4 将爬取的数据写入 MySQL 数据库中 91
6.5.5 数据的爬取与爬虫项目启动 92
6.5.6 编写配置文件 93
6.6 项目运行 94
6.7 源码下载 97
第 7 章 世界 500 强数据爬取与分析 98
——pandas matplotlib seaborn lambda 函数
7.1 开发背景 98
7.2 系统设计 99
7.2.1 开发环境 99
7.2.2 业务流程 99
7.2.3 功能结构 100
7.3 技术准备 100
7.3.1 技术概览 100
7.3.2 详解 read_htlm()获取网页数据全过程 101
7.3.3 DataFrame 对象常用方法的使用 102
7.3.4 使用 lambda 函数快速处理数据 105
7.4 数据准备 106
7.4.1 数据集介绍 106
7.4.2 确定网页数据的结构 106
7.4.3 爬取数据 107
7.4.4 查看数据 108
7.5 统计分析 110
7.5.1 新上榜企业统计 110
7.5.2 统计排名上升的企业 110
7.5.3 柱状图分析世界 500 强排行 TOP10 112
7.5.4 折线图分析利润前 20 的企业 113
7.5.5 柱状图统计各国上榜企业的总营收 115
7.5.6 柱状图统计国内上榜企业的营收情况 115
7.5.7 饼图分析各国上榜企业比例 117
7.6 项目运行 119
7.7 源码下载 120
第 8 章 二手房信息智能抓取分析系统 121
——requests_html pandas matplotlib multiprocessing
8.1 开发背景 121
8.2 系统设计 122
8.2.1 开发环境 122
8.2.2 业务流程 122
8.2.3 功能结构 122
8.3 技术准备 123
8.3.1 技术概览 123
8.3.2 requests_html 模块的使用 124
8.4 功能设计 125
8.4.1 分析网页数据结构 125
8.4.2 爬取二手房数据 127
8.4.3 清洗数据 129
8.4.4 饼图显示各区二手房数量所占比例 129
8.4.5 柱状图显示各区二手房均价 130
8.4.6 柱状图显示热门户型均价 131
8.4.7 设计主菜单 132
8.4.8 定义程序入口 133
8.5 项目运行 134
8.6 源码下载 135
第 9 章 图书热销侦探 136
——PyQt5 requests PyMySQL matplotlib
9.1 开发背景 137
9.2 系统设计 137
9.2.1 开发环境 137
9.2.2 业务流程 137
9.2.3 功能结构 138
9.3 技术预览 138
9.4 数据库设计 140
9.5 公共模块设计 142
9.5.1 mysql 数据库操作模块 142
9.5.2 crawl 网络爬虫模块 144
9.5.3 chart 绘图模块 145
9.6 主窗体设计 146
9.6.1 窗体 UI 设计 146
9.6.2 美化窗体 149
9.6.3 逻辑功能实现 151
9.7 图书销量排行榜窗体设计 153
9.7.1 窗体 UI 设计 153
9.7.2 美化窗体 155
9.7.3 显示图书销量排行榜 155
9.8 图书热评排行榜窗体设计 156
9.8.1 窗体 UI 设计 156
9.8.2 美化窗体 158
9.8.3 显示图书热评排行榜 158
9.9 “关于”窗体设计 159
9.9.1 窗体 UI 设计 159
9.9.2 设置背景图片 160
9.10 UI 代码分离模块设计 161
9.10.1 导入模块 161
9.10.2 定义公共变量及函数 161
9.10.3 定义窗体初始化类 161
9.10.4 定义程序入口 162
9.11 项目运行 163
9.12 源码下载 165
第 10 章 APP 数据采集先锋 166
——requests BeautifulSoup(bs4) lxml.etree Charles 抓包工具
10.1 开发背景 166
10.2 系统设计 167
10.2.1 开发环境 167
10.2.2 业务流程 167
10.2.3 功能结构 168
10.3 技术准备 168
10.3.1 技术概览 168
10.3.2 lxml.etree 模块的使用 168
10.3.3 Charles 抓包工具的使用 171
10.4 功能设计 178
10.4.1 配置手机端网络 178
10.4.2 采集手机 APP 网络请求 180
10.4.3 分析数据所在的标签位置 183
10.4.4 爬取 APP 数据 183
10.5 项目运行 184
10.6 源码下载 185
第 11 章 微信智能机器人 186
——requests lxml xpinyin Flask 微信公众平台 Ngrok 内网穿透工具
11.1 开发背景 186
11.2 系统设计 187
11.2.1 开发环境 187
11.2.2 业务流程 187
11.2.3 功能结构 187
11.3 技术准备 188
11.3.1 技术概览 188
11.3.2 lxml 模块的使用 189
11.3.3 xpinyin 模块的使用 190
11.3.4 微信公众平台开发 191
11.3.5 内网穿透工具的使用 196
11.4 爬取新闻标题 198
11.4.1 页面分析 198
11.4.2 随机爬取一条新闻标题 199
11.5 爬取天气信息 200
11.5.1 页面分析 201
11.5.2 爬取天气信息 202
11.6 微信智能机器人的实现 203
11.6.1 设置配置文件 203
11.6.2 校验微信签名 205
11.6.3 配置微信公众号 206
11.6.4 实现自动回复功能 207
11.6.5 创建主程序文件 209
11.7 项目运行 209
11.8 源码下载 210

