《Python网络爬虫项目开发全程实录》精选 11个热门的网络爬虫项目,突出了实用性。具体项目包含:智能破解验证码、手机数据爬取精灵、汽车之家图片抓取工具、高清壁纸快车(多线程版)、多进程影视猎手、分布式爬取动态新闻数据、世界 500 强数据爬取与分析、二手房信息智能抓取分析系统、图书热销侦探、APP 数据采集先锋、微信智能机器人。本书从软件工程的角度出发,按照项目开发的顺序,系统、全面地讲解每一个项目的开发实现过程。体例上,每章一个项目,统一采用开发背景一系统设计一技术准备一各功能模块的设计与实现一项目运行一源码下载的形式完整呈现项目,让读者快速积累实际项目经验与技巧,早日实现就业目标。
丛书说明:软件项目开发全程实录丛书第1 版于2008 年6 月出版,因其定位于项目开发案例、面向实际开发应用,并解决了社会需求和高校课程设置相对脱节的痛点,在软件项目开发类图书市场上产生了很大的反响,在全国软件项目开发零售图书排行榜中名列前茅。
软件项目开发全程实录丛书第2 版于2011 年1 月出版,第3 版于2013 年10 月出版,第4 版于2018年5 月出版。本套丛书经过十六年的锤炼打造,不仅深受广大程序员的喜爱,还被百余所高校选为计算机科学、软件工程等相关专业的教材及教学参考用书,更被广大高校学子用作毕业设计和工作实习的参考用书。
软件项目开发全程实录丛书第5 版在继承前4 版所有优点的基础上,进行了大幅度的改版升级。首先,结合当前技术发展的最新趋势与市场需求,增加了程序员求职急需的新图书品种;其次,对图书内容进行了深度更新、优化,新增了当前热门的流行项目,优化了原有经典项目,将开发环境和工具更新为目前的新版本等,使之更与时代接轨,更适合读者学习;第三,录制了全新的项目精讲视频,并配备了更加丰富的学习资源与服务,可以给读者带来更好的项目学习及使用体验。
Python 是一种非常流行且强大的编程语言,它不仅因为简洁的语法受到开发者的喜爱,还因为拥有丰富的库来支持各种高级功能。其中,网络爬虫方向是Python 开发中一个极为重要的应用领域。网络爬虫是一种自动化的程序,用于从互联网上抓取数据,这些数据可以是网页上的文本、图片、链接等信息,也可以是更复杂的数据结构,如JSON 或XML 格式的数据等。通过使用Python 编写网络爬虫程序,开发者能够高效地收集大量数据,这些数据对于市场分析、产品开发、竞品分析等领域都具有极高的价值。
本书内容
本书以中小型项目为载体,精选11 个热门的网络爬虫项目,包括智能破解验证码、手机数据爬取精灵、汽车之家图片抓取工具、高清壁纸快车(多线程版)、多进程影视猎手、分布式爬取动态新闻数据、世界500强数据爬取与分析、二手房信息智能抓取分析系统、图书热销侦探、APP 数据采集先锋、微信智能机器人。通过这些热门、实用的项目,本书带领读者切身感受Python 网络爬虫项目开发的实际过程,让读者深刻体会Python 网络爬虫技术在项目开发中的具体应用。全书内容不是枯燥的语法和陌生的术语,而是一步一步地引导读者实现一个个热门的项目,从而激发读者学习项目开发的兴趣,变被动学习为主动学习。
本书特点
项目典型。本书精选11 个热点项目,涉及多个Python 爬虫模块及多领域应用。所有项目均从实际应用角度出发,可以让读者从项目学习中积累丰富的开发经验。
流程清晰。本书项目从软件工程的角度出发,统一采用开发背景系统设计技术准备各功能模块的设计与实现项目运行源码下载的流程进行讲解,可以让读者更加清晰地了解项目的完整开发流程。
技术新颖。本书所有项目的实现技术均采用目前业内推荐使用的最新稳定版本,与时俱进,实用性极强。同时,所有项目均配备技术准备环节,对项目中用到的Python 网络爬虫基本技术点、高级应用、第三方模块等进行精要讲解,为初级编程人员参与项目开发扫清了障碍。
栏目精彩。本书根据项目学习的需要,在每个项目讲解过程的关键环节增设了注意说明等特色栏目,点拨项目的开发要点和精华,帮助读者更快地掌握相关技术的应用技巧。
源码下载。本书中的每个项目最后都安排了源码下载一节,读者能够通过扫描二维码下载对应项目的完整源码,以方便学习。
项目视频。本书为每个项目提供了精讲微视频,使读者能够更加轻松地搭建、运行、使用项目,并能够随时随地查看和学习。
读者对象:初学Python 网络爬虫的自学者;高等院校的教师;参与项目实训的学生;IT 培训机构的教师与学员;做毕业设计的学生;爬虫及数据分析开发者;参加实习的初级程序员;编程爱好者。
资源与服务
本书提供了大量的辅助学习资源,还提供了专业的知识拓展与答疑服务,旨在帮助读者提高学习效率并解决学习过程中遇到的各种疑难问题。读者需要刮开图书封底的防盗码(刮刮卡),扫描并绑定微信,获取学习权限。
(1)开发环境搭建视频
搭建环境对于项目开发非常重要,它确保了项目开发在一致的环境下进行,减少了因环境差异导致的错误和冲突。通过搭建开发环境,项目依赖得以方便管理,从而提高开发效率。本书提供了开发环境搭建的讲解视频,可以引导读者快速准确地搭建本书项目的开发环境。
(2)项目精讲视频
本书每个项目均配有对应的项目精讲微视频,主要针对项目的需求背景、应用价值、功能结构、业务流程、实现逻辑以及所用到的核心技术点进行精要讲解,可以帮助读者了解项目概要,把握项目要领,快速进入学习状态。扫描每章首页的对应二维码即可观看学习。
(3)项目源码
本书每章一个项目,系统全面地讲解了该项目的设计及实现过程。为了方便读者学习,本书提供了完整的项目源码(包含项目中用到的所有素材,如图片、数据表等)。扫描每章最后的二维码即可下载这些源码。
(4)AI 辅助开发手册
在人工智能浪潮的席卷之下,AI 大模型工具呈现百花齐放之态,辅助编程开发的代码助手类工具不断涌现,可为开发人员提供技术点问答、代码查错、辅助开发等非常实用的服务,极大地提高了编程学习和开发效率。为了帮助读者快速熟悉并使用这些工具,本书专门精心配备了电子版的《AI 辅助开发手册》,不仅为读者提供各个主流大语言模型的使用指南,而且详细讲解文心快码(Baidu Comate)、通义灵码、腾讯云AI 代码助手、iFlyCode 等专业的智能代码助手的使用方法。
(5)代码查错器
为了进一步帮助读者提升学习效率,培养良好的编码习惯,本书配备了由明日科技自主开发的代码查错器。读者可以将本书的项目源码保存为对应的 .txt 文件,存放到代码查错器的对应文件夹中,然后自己编写相应的实现代码并与项目源码进行比对,快速找出自己编写的代码与源码不一致或者发生错误的地方。代码查错器配有详细的使用说明文档,扫描二维码即可下载。
(6)Python 开发资源库
本书配备了强大的线上Python 开发资源库,包括技术资源库、技巧资源库、实例资源库、项目资源库、源码资源库、视频资源库。扫描二维码,可登录明日科技网站,获取Python 开发资源库一年的免费使用权限。
(7)Python 面试资源库
本书配备了Python 面试资源库,精心汇编了大量企业面试真题,是求职面试的绝佳指南。扫描本书封底的文泉云盘二维码即可获取。
(8)教学PPT
本书配备了精美的教学PPT,可供高校教师和培训机构讲师备课使用,也可供读者做知识梳理。扫描本书封底的文泉云盘二维码即可下载。另外,登录清华大学出版社网站,可在本书对应页面查阅教学PPT 的获取方式。
(9)学习答疑
在学习过程中,读者难免会遇到各种疑难问题。本书配有完善的新媒体学习矩阵,包括IT 今日热榜(实时提供最新技术热点)、微信公众号、学习交流群、400 电话等,可为读者提供专业的知识拓展与答疑服务。扫描右侧二维码,根据提示操作,即可享受答疑服务。
致读者
本书由明日科技Python 开发团队组织编写。明日科技是一家专业从事软件开发、教育培训以及软件开发教育资源整合的高科技公司,其编写的图书非常注重选取软件开发中的必需、常用内容,同时也很注重内容的易学性、学习的方便性以及相关知识的拓展性,深受读者喜爱。其编写的图书多次荣获全行业优秀畅销品种全国高校出版社优秀畅销书等奖项,多个品种长期位居同类图书销售排行榜的前列。
在编写本书的过程中,我们始终本着科学、严谨的态度,力求精益求精,但书中疏漏之处在所难免,敬请广大读者批评指正。
感谢您选择本书,希望本书能成为您的良师益友,成为您步入编程高手之路的踏脚石。宝剑锋从磨砺出,梅花香自苦寒来。祝读书快乐!
明日科技,全称是吉林省明日科技有限公司,是一家专业从事软件开发、教育培训以及软件开发教育资源整合的高科技公司,其编写的教材非常注重选取软件开发中的必需、常用内容,同时也很注重内容的易学、方便性以及相关知识的拓展性,深受读者喜爱。其教材多次荣获全行业优秀畅销品种全国高校出版社优秀畅销书等奖项,多个品种长期位居同类图书销售排行榜的前列。
第 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