您的浏览器不支持JavaScript,请开启后继续
Python网络爬虫从入门到进阶实战

Python网络爬虫从入门到进阶实战

  • 作者
  • 明日科技 编著

《Python 网络爬虫从入门到进阶实战》从零基础入门学习者的角度出发,通过通俗易懂的语言、丰富多彩的实例,循序渐进地让读者在实践中学习Python网络爬虫知识,并提升自己的实际开发能力。 本书主要介绍了爬虫基础知识、常用网络请求模块的使用(urllib3 模块、Requests 模块、高级网络请求模块)、数据解析与存储(re 模块的正则表达式、XPath 的使用、Beautif...


  • ¥99.00

ISBN: 978-7-122-44834-7

版次: 1

出版时间: 2024-03-01

图书介绍

ISBN:978-7-122-44834-7

语种:汉文

开本:16

出版时间:2024-03-01

装帧:平

页数:285

编辑推荐

本书具有以下特色: 1.双色印刷,更好地呈现数据采集相关知识要点与各类解析、验证等工具的强大功能。 2.从爬虫基础到简单实现,从环境搭建到Scrapy与分布式爬虫,知识结构由浅入深,便于系统学习。 3.提供丰富案例与源码支持,引导读者边练边学,在实践中快速成长。

图书前言

大数据时代,谁拥有了海量的有效数据,谁就拥有了决策的主动权。网络爬虫技术作为自动采集数据的一种有效手段,已经成为了大数据时代必不可少的一项技术。
网络爬虫是一种按照一定的规则,自动抓取互联网海量信息的程序或脚本,其广泛应用于搜索引擎、数据采集、广告过滤、大数据分析等领域。本书通过基础+实战的方式,帮助读者快速掌握Python 网络爬虫技能。
本书内容
本书特色
1. 轻松学习、介绍全面
本书以使用Python进行网络爬虫用到的相关技术展开讲解,涵盖了爬虫基础、各种网络爬虫模块、数据处理及存储、多线程、多进程、常用爬虫框架等相关知识,对于晦涩难懂的内容结合了大量的示意图和步骤图进行讲解,力求使读者能够轻松学习、零压力学习。
2.实例丰富、学以致用
书中介绍的网络爬虫技术都结合了大量的实例以及非常详细的注释信息,力求使读者能够快速掌握Python网络爬虫技能,提升学习效率,缩短学习路径,学以致用。
3. 提升技能、综合运用
通过实际的案例应用,带领读者掌握所学技术在实际中的使用场景,从而快速解决身边的问题,提升综合运用的能力。
4. 精彩栏目、贴心提示
本书根据实际学习的需要,设置了“注意”“说明”等栏目,辅助读者轻松理解所学知识,规避编程陷阱。
本书读者对象
·Python 的编程爱好者;
·参加毕业设计的学生;
·相关培训机构的老师和学生;
·大中专院校的老师和学生;
·从事数据采集、分析的相关人员;
·职场人员。
读者服务
关于本书的实例代码与相关资源,读者可访问化学工业出版社官网>服务>资源下载页面:www.cip.com.cn/Service/Download 搜索本书并获取下载链接。
为方便解决读者在学习本书过程中遇到的疑难问题及获取更多学习资源,我们将提供在线技术指导和社区服务。服务方式如下:
质量反馈信箱:mingrisoft@mingrisoft.com。
售后服务电话:4006751066。
QQ 群:337212027
致读者
本书由明日科技的Python开发团队策划并组织编写,主要编写人员有李磊、王小科、高春艳、赛奎春、赵宁、张鑫、周佳星、王国辉、葛忠月、宋万勇、田旭、王萍、李颖、杨丽、刘媛媛、依莹莹、吕学丽、钟成浩、徐丹、王欢、张悦、岳彩龙、牛秀丽、段霄雷、宛佳秋、杜明哲、于英鹏等。在编写本书的过程中,我们本着科学、严谨的态度,力求精益求精,但疏漏之处在所难免,敬请广大读者批评斧正。

编著者

精彩书摘

《Python 网络爬虫从入门到进阶实战》从零基础入门学习者的角度出发,通过通俗易懂的语言、丰富多彩的实例,循序渐进地让读者在实践中学习Python网络爬虫知识,并提升自己的实际开发能力。
本书主要介绍了爬虫基础知识、常用网络请求模块的使用(urllib3 模块、Requests 模块、高级网络请求模块)、数据解析与存储(re 模块的正则表达式、XPath 的使用、Beautiful Soup 模块)、爬取动态渲染的数据、多线程爬虫、多进程爬虫、抓取App 数据、识别验证码、Scrapy 爬虫框架与Scrapy-Redis 分布式爬虫等内容。
本书知识讲解详细,侧重讲解知识使用场景,涉及的代码给出了详细的注释,可以使读者轻松领会Python 网络爬虫程序开发的精髓,快速提高开发技能。
本书适合作为Python 网络爬虫程序开发入门者的自学用书,也适合作为高等院校相关专业的教学参考书,亦可供开发人员查阅、参考。

目录

第1篇 爬虫基础篇
第1章 认识爬虫 002
1.1 网络爬虫概述 002
1.2 网络爬虫的分类 002
1.3 网络爬虫的基本原理 003
1.4 爬虫环境搭建 004
本章知识思维导图 004

第2章 爬虫基础知识 005
2.1 HTTP 基本原理 005
2.1.1 HTTP 协议 005
2.1.2 HTTP 与Web 服务器 005
2.1.3 浏览器中的请求和响应 006
2.2 HTML 语言 008
2.2.1 什么是HTML 008
2.2.2 了解HTML 结构 008
2.2.3 HTML 的基本标签 009
2.3 CSS 层叠样式表 011
2.3.1 CSS 概述 011
2.3.2 属性选择器 012
2.3.3 类和id 选择器 013
2.4 JavaScript 动态脚本语言 013
本章知识思维导图 016


第2篇 网络模块篇
第3章 urllib3 模块 018
3.1 urllib3 简介 018
3.2 发送网络请求 019
3.2.1 GET 请求 019
3.2.2 POST 请求 020
3.2.3 重试请求 021
3.2.4 处理响应内容 022
3.3 复杂请求的发送 024
3.3.1 设置请求头 024
3.3.2 设置超时 025
3.3.3 设置代理IP 026
3.4 上传文件 027
本章知识思维导图 029

第4章 Requests 模块 030
4.1 请求方式 030
4.1.1 GET(不带参)请求 031
4.1.2 对响应结果进行utf-8 编码 031
4.1.3 爬取二进制数据 032
4.1.4 GET(带参)请求 033
4.1.5 POST 请求 034
4.2 复杂的网络请求 035
4.2.1 添加请求头headers 036
4.2.2 验证Cookies 036
4.2.3 会话请求 038
4.2.4 验证请求 039
4.2.5 网络超时与异常 040
4.2.6 上传文件 041
4.3 代理服务 043
4.3.1 代理的应用 043
4.3.2 获取免费的代理IP 044
4.3.3 检测代理IP 是否有效 045
本章知识思维导图 047

第5章 高级网络请求模块 048
5.1 Requests-Cache 的安装与测试 048
5.2 缓存的应用 049
5.3 强大的Requests-HTML 模块 052
5.3.1 使用Requests-HTML 实现网络请求 052
5.3.2 数据的提取 054
5.3.3 获取动态加载的数据 058
本章知识思维导图 062


第3篇 数据解析与存储篇
第6章 re 模块的正则表达式 064
6.1 使用search() 方法匹配字符串 064
6.1.1 获取第一个指定字符开头的字符串 064
6.1.2 可选匹配 065
6.1.3 匹配字符串边界 066
6.2 使用findall() 方法匹配字符串 067
6.2.1 匹配所有指定字符开头的字符串 067
6.2.2 贪婪匹配 068
6.2.3 非贪婪匹配 068
6.3 字符串处理 070
6.3.1 替换字符串 070
6.3.2 分割字符串 071
6.4 案例:爬取编程e 学网视频 072
6.4.1 查找视频页面 072
6.4.2 分析视频地址 074
6.4.3 实现视频下载 075
本章知识思维导图 077

第7章 XPath 的使用 078
7.1 XPath 概述 078
7.2 XPath 的解析操作 079
7.2.1 解析HTML 079
7.2.2 获取所有节点 081
7.2.3 获取子节点 083
7.2.4 获取父节点 085
7.2.5 获取文本 086
7.2.6 属性匹配 087
7.2.7 获取属性 089
7.2.8 按序获取属性值 090
7.2.9 使用节点轴获取节点内容 091
7.3 案例:爬取豆瓣电影Top250 093
7.3.1 分析请求地址 093
7.3.2 分析信息位置 094
7.3.3 爬虫代码的实现 095
本章知识思维导图 097

第8章 Beautiful Soup 模块 098
8.1 使用Beautiful Soup 解析数据 098
8.1.1 Beautiful Soup 的安装 098
8.1.2 解析器 099
8.1.3 Beautiful Soup 的简单应用 100
8.2 获取节点内容 101
8.2.1 获取节点对应的代码 101
8.2.2 获取节点属性 103
8.2.3 获取节点包含的文本内容 104
8.2.4 嵌套获取节点内容 105
8.2.5 关联获取 106
8.3 调用方法获取内容 111
8.3.1 find_all()——获取所有符合条件的内容 111
8.3.2 find()——获取第一个匹配的节点内容 115
8.3.3 其他方法 116
8.4 CSS 选择器 117
本章知识思维导图 120

第9章 数据处理与文件存取 121
9.1 了解pandas 数据结构 121
9.1.1 Series 对象 121
9.1.2 DataFrame 对象 124
9.2 数据处理 126
9.2.1 增添数据 126
9.2.2 删除数据 126
9.2.3 修改数据 127
9.2.4 查询数据 128
9.3 NaN 数据处理 130
9.4 去除重复数据 133
9.5 文件的存取 135
9.5.1 基本文件操作TXT 135
9.5.2 存取CSV 文件 140
9.5.3 存取Excel 文件 143
9.6 MySQL 数据库的使用 144
9.6.1 连接数据库 144
9.6.2 创建数据表 145
9.6.3 操作MySQL 数据表 146
本章知识思维导图 148


第4篇 技能进阶篇
第10章 爬取动态渲染的数据 150
10.1 Ajax 数据的爬取 150
10.2 使用selenium 爬取动态加载的信息 154
10.2.1 安装selenium 模块 154
10.2.2 下载浏览器驱动 154
10.2.3 selenium 模块的使用 155
10.3 Splash 的爬虫应用 157
10.3.1 Splash 中的HTTP API 158
10.3.2 执行lua 自定义脚本 161
本章知识思维导图 163

第11章 多线程爬虫 164
11.1 进程与线程 164
11.1.1 什么是进程 164
11.1.2 什么是线程 165
11.2 创建线程 165
11.2.1 使用threading 模块创建线程 165
11.2.2 使用Thread 子类创建线程 166
11.3 线程间通信 167
11.3.1 什么是互斥锁 168
11.3.2 使用互斥锁 169
11.3.3 使用队列在线程间通信 170
11.4 多线程爬虫 172
本章知识思维导图 178

第12章 多进程爬虫 179
12.1 创建进程 179
12.1.1 使用multiprocessing 模块创建进程 179
12.1.2 使用Process 子类创建进程 183
12.1.3 使用进程池Pool 创建进程 184
12.2 进程间通信 187
12.2.1 队列简介 188
12.2.2 多进程队列的使用 189
12.2.3 使用队列在进程间通信 191
12.3 多进程爬虫 192
本章知识思维导图 197

第13章 爬取App 数据 198
13.1 Charles 工具的下载与安装 198
13.2 SSL 证书的安装 202
13.2.1 安装PC 端证书 202
13.2.2 设置代理 206
13.2.3 配置网络 207
13.2.4 安装手机端证书 210
13.3 案例:爬取App 数据 213
本章知识思维导图 215

第14章 识别验证码 216
14.1 字符验证码 216
14.1.1 搭建OCR 环境 216
14.1.2 下载验证码图片 218
14.1.3 识别验证码 219
14.2 第三方验证码识别 221
14.3 滑动拼图验证码 225
本章知识思维导图 228


第5篇 框架篇
第15章 Scrapy 爬虫框架 230
15.1 了解Scrapy 爬虫框架 230
15.2 搭建Scrapy 爬虫框架 231
15.2.1 使用Anaconda 安装Scrapy 231
15.2.2 Windows 系统下配置Scrapy 233
15.3 Scrapy 的基本应用 235
15.3.1 创建Scrapy 项目 235
15.3.2 创建爬虫 236
15.3.3 获取数据 240
15.3.4 将爬取的数据保存为多种格式的文件 243
15.4 编写Item Pipeline 244
15.4.1 项目管道的核心方法 244
15.4.2 将信息存储到数据库中 245
15.5 自定义中间件 248
15.5.1 设置随机请求头 249
15.5.2 设置Cookies 252
15.5.3 设置代理ip 255
15.6 文件下载 257
本章知识思维导图 260

第16章 Scrapy-Redis 分布式爬虫 261
16.1 安装Redis 数据库 261
16.2 Scrapy-Redis 模块 264
16.3 分布式爬取新闻数据 265
16.4 自定义分布式爬虫 277
本章知识思维导图 285

发送电子邮件联系我们