您的浏览器不支持JavaScript,请开启后继续

球王会体育-球王会体育官网-球王会体育手机app下载

Python网络爬虫技术手册:基础·实战·强化

Python网络爬虫技术手册:基础·实战·强化

  • 作者
  • 明日科技编著

《Python网络爬虫技术手册:基础·实战·强化》是“计算机科学与技术手册系列”图书之一,该系列图书内容全面,以理论联系实际、能学到并做到为宗旨,以技术为核心,以案例为辅助,引领读者全面学习基础技术、代码编写方法和具体应用项目,旨在为想要进入相应领域或者已经在该领域深耕多年的技术人员提供新而全的技术性内容及案例。 本书是一本侧重编程基础+实践的Python爬虫图书...


  • ¥128.00

ISBN: 978-7-122-40009-3

版次: 1

出版时间: 2022-01-01

图书介绍

ISBN:978-7-122-40009-3

语种:汉文

开本:16

出版时间:2022-01-01

装帧:平

页数:378

编辑推荐

1.内容全面,案例丰富 2.视频教学,图文并茂 3.在线服务,纸电同步

精彩书摘

《Python网络爬虫技术手册:基础·实战·强化》是“计算机科学与技术手册系列”图书之一,该系列图书内容全面,以理论联系实际、能学到并做到为宗旨,以技术为核心,以案例为辅助,引领读者全面学习基础技术、代码编写方法和具体应用项目,旨在为想要进入相应领域或者已经在该领域深耕多年的技术人员提供新而全的技术性内容及案例。 本书是一本侧重编程基础+实践的Python爬虫图书,从基础、实战、强化三个层次循序渐进地介绍了网络爬虫入门必备知识:基础篇主要讲解网络爬虫的基础内容;实战篇主要讲解目前应用最广的各类数据库爬虫相关技术和案例;强化篇结合数据库、数据分析、可视化等进行大型项目综合实战练习。本书内容充实,给读者提供了较为丰富全面的技术支持和案例强化,通过各种示例将学习与应用相结合,打造轻松学习、零压力学习的环境,通过案例对所学知识进行综合应用,通过开发实际项目将网络爬虫的各项技能应用到实际工作中,帮助读者实现学以致用,快速掌握网络爬虫的各项技能。 本书提供丰富的资源,包含109个实例、13个实战案例、2个应用强化项目,力求为读者打造一本基础+实战+强化一体化的、精彩的Python网络爬虫图书。 本书不仅适合初学者、数据采集相关技术人员、对数据感兴趣的人员,而且适合从事其他岗位想掌握一定的数据采集能力的职场人员阅读参考。

目录

第1篇 基础篇
第1章 爬虫基础
1.1 什么是网络爬虫 2
1.2 网络爬虫的分类 3
1.3 网络爬虫的原理 3
1.4 HTTP基本原理 3
1.4.1 什么是URL 3
1.4.2 HTTP协议 4
1.4.3 HTTP与Web服务器 4
1.4.4 浏览器中的请求和响应 5
1.5 网页的基本结构 6
1.5.1 了解HTML 6
1.5.2 了解CSS 6
1.5.3 了解JavaScript 8

第2章 搭建网络爬虫开发环境
2.1 Anaconda的安装 10
2.2 下载与安装PyCharm 13
2.3 配置PyCharm 16
2.4 测试PyCharm 18

第3章 网络请求urllib模块
3.1 了解urllib 20
3.2 发送网络请求 20
3.2.1 发送GET请求 21
实例3.1 演示常用的方法与属性 21
3.2.2 发送POST请求 22
实例3.2 发送POST请求 22
3.2.3 请求超时 22
实例3.3 处理网络超时 23
3.2.4 设置请求头 23
实例3.4 设置请求头 24
3.2.5 获取与设置Cookie 25
实例3.5 模拟登录 25
实例3.6 获取Cookie 27
实例3.7 保存Cookie文件 27
实例3.8 获取登录后页面中的信息 28
3.2.6 代理IP的设置 29
实例3.9 设置代理IP 29
3.3 处理请求异常 29
实例3.10 处理URLError异常 29
实例3.11 使用HTTPError类捕获异常 30
实例3.12 双重异常的捕获 31
3.4 解析URL 31
3.4.1 URL的拆分(urlparse、urlsplit) 31
实例3.13 使用urlparse()方法拆分URL 32
实例3.14 使用urlsplit()方法拆分URL 32
3.4.2 URL的组合(urlunparse、urlunsplit) 33
实例3.15 使用urlunparse()方法组合URL 33
实例3.16 使用urlunsplit()方法组合URL 34
3.4.3 URL的连接(urljoin) 34
实例3.17 使用urljoin()方法连接URL 34
3.4.4 URL的编码与解码(urlencode、quote、unquote) 35
实例3.18 使用urlencode()方法编码请求参数 35
实例3.19 使用quote()方法编码字符串参数 35
实例3.20 使用unquote()方法解码请求参数 36
3.4.5 URL的参数转换 36
实例3.21 使用parse_qs()方法将参数转换为字典类型 36
实例3.22 使用parse_qsl()方法将参数转换为元组所组成的列表 36
3.5 综合案例——爬取“百度热搜” 37
3.5.1 分析数据 37
3.5.2 实现网络爬虫 37
3.6 实战练习 39

第4章 网络请求urllib3模块
4.1 了解urllib3 40
4.2 发送网络请求 41
4.2.1 发送GET请求 41
实例4.1 发送GET请求 41
实例4.2 发送多个请求 41
4.2.2 发送POST请求 42
实例4.3 发送POST请求 42
4.2.3 重试请求 43
实例4.4 重试请求 43
4.2.4 获得响应内容 43
实例4.5 获取响应头信息 43
实例4.6 处理服务器返回的JSON信息 44
实例4.7 处理服务器返回二进制数据 44
4.2.5 设置请求头 45
实例4.8 设置请求头 45
4.2.6 设置超时 46
实例4.9 设置超时 46
4.2.7 设置代理IP 47
实例4.10 设置代理IP 47
4.3 上传文件 47
实例4.11 上传文本文件 47
实例4.12 上传图片文件 48
4.4 综合案例——爬取必应壁纸 48
4.4.1 分析数据 48
4.4.2 实现网络爬虫 49
4.5 实战练习 51

第5章 网络请求requests模块
5.1 基本请求方式 52
5.1.1 发送GET请求 53
实例5.1 发送GET请求不带参数 53
5.1.2 设置编码 53
实例5.2 获取网页源码 53
5.1.3 二进制数据的爬取 54
实例5.3 下载百度logo图片 54
5.1.4 发送GET(带参数)请求 54
5.1.5 发送POST请求 55
实例5.4 发送POST请求 55
5.2 高级请求方式 56
5.2.1 设置请求头 56
实例5.5 设置请求头 56
5.2.2 Cookie的验证 57
实例5.6 模拟豆瓣登录 57
5.2.3 会话请求 58
实例5.7 会话请求 58
5.2.4 验证请求 58
实例5.8 验证请求 59
5.2.5 网络超时与异常 59
实例5.9 网络超时与异常 59
实例5.10 判断网络异常 60
5.2.6 文件上传 60
实例5.11 上传图片文件 60
5.2.7 代理的应用 61
实例5.12 使用代理IP发送请求 61
5.3 综合案例——爬取糗事百科(视频) 62
5.3.1 分析数据 62
5.3.2 实现爬虫 63
5.4 实战练习 64

第6章 requests模块的两大扩展
6.1 安装requests-cache模块 65
6.2 爬虫缓存的应用 66
6.3 多功能requests-html模块 68
6.3.1 发送网络请求 68
6.3.2 提取数据 70
实例6.1 爬取即时新闻 70
6.3.3 获取动态渲染的数据 73
实例6.2 获取动态渲染的数据 73
6.4 综合案例——爬取百度天气 75
6.4.1 分析数据 75
6.4.2 实现爬虫 76
6.5 实战练习 77

第7章 正则表达式解析
7.1 通过search()匹配字符串 78
7.1.1 匹配指定开头的字符串 79
实例7.1 搜索第一个以“mr_”开头的字符串 79
7.1.2 可选匹配字符串中的内容 79
实例7.2 可选匹配字符串中的内容 79
7.1.3 使用“b”匹配字符串的边界 80
实例7.3 使用“b”匹配字符串的边界 80
7.2 通过findall()匹配字符串 80
7.2.1 匹配所有以指定字符开头的字符串 81
实例7.4 匹配所有以“mr_”开头的字符串 81
7.2.2 贪婪匹配法 81
实例7.5 使用“.*”实现贪婪匹配字符串 81
7.2.3 非贪婪匹配法 82
实例7.6 使用“.*?”实现非贪婪匹配字符串 82
7.3 处理字符串 83
7.3.1 使用sub()方法替换字符串 83
实例7.7 使用sub()方法替换字符串 83
7.3.2 使用split()方法分割字符串 84
实例7.8 使用split()方法分割字符串 84
7.4 综合案例——爬取QQ音乐热歌榜 85
7.4.1 分析数据 85
7.4.2 实现爬虫 85
7.5 实战练习 86

第8章 lxml解析模块
8.1 了解XPath 87
8.2 XPath的基本操作 88
8.2.1 HTML的解析 88
实例8.1 解析本地的HTML文件 88
实例8.2 解析字符串类型的HTML代码 88
实例8.3 解析服务器返回的HTML代码 89
8.2.2 获取所有标签 90
实例8.4 获取HTML代码的所有标签 90
8.2.3 获取子标签 91
实例8.5 获取一个标签中的子标签 91
实例8.6 获取子孙标签 92
8.2.4 获取父标签 92
实例8.7 获取一个标签的父标签 92
8.2.5 获取文本 93
实例8.8 获取HTML代码中的文本 93
8.2.6 属性匹配 94
实例8.9 使用“【@...】”实现标签属性的匹配 94
实例8.10 属性多值匹配 94
实例8.11 一个标签中多个属性的匹配 95
8.2.7 获取属性值 96
实例8.12 获取属性所对应的值 96
实例8.13 使用索引按序获取属性对应的值 97
8.2.8 使用标签轴获取标签内容 98
实例8.14 使用标签轴的方式获取标签内容 98
8.3 综合案例——爬取豆瓣新书速递 99
8.3.1 分析数据 99
8.3.2 实现爬虫 99
8.4 实战练习 100

第9章 BeautifulSoup解析模块
9.1 BeautifulSoup的基础应用  101
9.1.1 安装BeautifulSoup 101
9.1.2 解析器的区别 102
9.1.3 解析HTML 103
实例9.1 解析HTML代码 103
9.2 获取标签内容 103
9.2.1 获取标签对应的代码 104
实例9.2 获取标签对应的代码 104
9.2.2 获取标签属性 105
实例9.3 获取标签属性 105
9.2.3 获取标签内的文本 106
9.2.4 嵌套获取标签内容 106
实例9.4 嵌套获取标签内容 106
9.2.5 关联获取 107
实例9.5 获取子标签 107
实例9.6 获取子孙标签 108
实例9.7 获取父标签 109
实例9.8 获取兄弟标签 109
9.3 利用方法获取内容 111
9.3.1 find_all()方法 111
实例9.9 find_all(name)通过标签名称获取内容 111
实例9.10 find_all(attrs)通过指定属性获取内容 112
实例9.11 find_all(text)获取标签中的文本 112
9.3.2 find()方法 113
实例9.12 获取第一个匹配的标签内容 113
9.3.3 其他方法 114
9.4 CSS选择器 114
实例9.13 使用CSS选择器获取标签内容 115
9.5 综合案例——爬取百度贴吧(热议榜) 116
9.5.1 分析数据 116
9.5.2 实现爬虫 116
9.6 实战练习 117

第10章 爬取动态渲染的数据
10.1 selenium模块 118
10.1.1 配置selenium环境 118
10.1.2 下载浏览器驱动 119
10.1.3 selenium的应用 119
实例10.1 获取京东商品信息 119
10.1.4 selenium的常用方法 120
10.2 Splash服务 121
10.2.1 搭建Splash环境 122
10.2.2 Splash的API接口 123
实例10.2 获取百度球王会体育-球王会体育官网-球王会体育手机app下载logo图片的链接 123
实例10.3 获取百度球王会体育-球王会体育官网-球王会体育手机app下载截图 124
实例10.4 获取请求页面的json信息 125
10.2.3 自定义lua脚本 125
实例10.5 获取百度渲染后的HTML代码 125
10.3 综合案例——爬取豆瓣阅读(连载榜) 127
10.3.1 分析数据 127
10.3.2 实现爬虫 128
10.4 实战练习 128

第11章 数据清洗与文件存储
11.1 使用pandas进行数据清洗 130
11.1.1 常见的两种数据结构 130
11.1.2 pandas数据的基本操作 134
11.1.3 处理NaN数据 138
11.1.4 重复数据的筛选 140
11.2 常见文件的基本操作 142
11.2.1 存取TXT文件 142
实例11.1 TXT文件存储 143
实例11.2 读取message.txt文件中的前9个字符 143
实例11.3 从文件的第14个字符开始读取8个字符 144
实例11.4 读取一行 144
实例11.5 读取全部行 145
11.2.2 存取CSV文件 146
11.2.3 存取Excel文件 148
11.3 综合案例——爬取豆瓣小组(讨论精选) 148
11.3.1 分析数据 149
11.3.2 实现爬虫 149
11.4 实战练习 149

第12章 数据库存储
12.1 SQLite数据库 151
12.1.1 创建数据库文件 151
12.1.2 操作SQLite 152
12.2 MySQL数据库 153
12.2.1 下载MySQL 153
12.2.2 安装MySQL服务器 154
12.2.3 配置MySQL 158
12.2.4 安装PyMySQL数据库操作模块 159
12.2.5 数据库的连接 160
实例12.1 连接数据库 160
12.2.6 数据表的创建 160
实例12.2 创建数据表 161
12.2.7 数据表的基本操作 161
实例12.3 操作数据表 161
12.3 综合案例——爬取下厨房(家常菜单) 162
12.3.1 分析数据 162
12.3.2 实现爬虫 162
12.4 实战练习 164

第13章 App抓包
13.1 下载与安装Charles抓包工具  165
13.2 PC端证书的安装 167
13.3 设置SSL代理 169
13.4 网络配置 169
13.5 手机证书的安装 170
13.6 综合案例——抓取手机微信新闻的地址 172
13.7 实战练习 173

第14章 验证码识别
14.1 字符验证码 174
14.1.1 配置OCR 174
14.1.2 下载验证码图片 175
实例14.1 下载验证码图片 175
14.1.3 识别图片验证码 176
实例14.2 识别图片验证码 176
14.2 第三方验证码识别 178
实例14.3 第三方打码平台 178
14.3 滑动拼图验证码 181
实例14.4 滑动拼图验证码 181
14.4 综合案例——识别随机生成的验证码 182
14.5 实战练习 183

第15章 Scrapy爬虫框架的基本应用
15.1 了解Scrapy爬虫框架 184
15.2 配置Scrapy爬虫框架 185
15.2.1 使用Anaconda安装Scrapy 185
15.2.2 Windows系统下配置Scrapy 186
15.3 Scrapy的基本用法 187
15.3.1 创建项目 187
15.3.2 创建爬虫 188
实例15.1 爬取网页代码并保存HTML文件 188
15.3.3 提取数据 190
实例15.2 使用XPath表达式获取多条信息 191
实例15.3 翻页提取数据 191
实例15.4 包装结构化数据 192
15.4 综合案例——爬取NBA得分排名 192
15.4.1 分析数据 193
15.4.2 实现爬虫 193
15.5 实战练习 194

第16章 Scrapy爬虫框架的高级应用
16.1 编写Item Pipeline 195
16.1.1 Item Pipeline的核心方法 195
16.1.2 将信息存储到数据库中 196
实例16.1 将京东数据存储至数据库 196
16.2 文件下载 199
实例16.2 下载京东外设商品图片 200
16.3 自定义中间件 201
16.3.1 设置随机请求头 201
实例16.3 设置随机请求头 202
16.3.2 设置Cookies 203
实例16.4 通过Cookies模拟自动登录 204
16.3.3 设置代理IP 205
实例16.5 随机代理中间件 206
16.4 综合案例——爬取NBA球员资料 207
16.4.1 分析数据 207
16.4.2 实现爬虫 208
16.5 实战练习 211

第2篇 实战篇
第17章 基于正则表达式爬取编程e学网视频(requests+re)
17.1 案例效果预览 213
17.2 案例准备 214
17.3 业务流程 214
17.4 实现过程 214
17.4.1 查找视频页面 214
17.4.2 分析视频地址 215
17.4.3 实现视频下载 215

第18章 基于正则表达式爬取免费代理IP(requests+pandas+re+random)
18.1 案例效果预览 217
18.2 案例准备 218
18.3 业务流程 218
18.4 实现过程 219
18.4.1 分析请求地址 219
18.4.2 确认数据所在位置 219
18.4.3 爬取代理IP并保存 220
18.4.4 检测代理IP 221

第19章 基于beautifulsoup4爬取酷狗TOP500音乐榜单(requests+bs4+time+random)
19.1 案例效果预览 224
19.2 案例准备 225
19.3 业务流程 225
19.4 实现过程 225
19.4.1 分析每页的请求地址 225
19.4.2 分析信息所在标签位置 226
19.4.3 编写爬虫代码 227

第20章 基于beautifulsoup4爬取段子网(requests+beautifulsoup4+time+random)
20.1 案例效果预览 229
20.2 案例准备 230
20.3 业务流程 230
20.4 实现过程 230
20.4.1 分析每页请求地址 230
20.4.2 分析详情页请求地址 231
20.4.3 确认段子各种信息的HTML代码位置 232
20.4.4 编写爬虫代码 232

第21章 基于beautifulsoup4爬取汽车之家图片(beautifulsoup4+Pillow+PyQt5+urllib)
21.1 案例效果预览 234
21.2 案例准备 235
21.3 业务流程 235
21.4 实现过程 236
21.4.1 登录窗体 236
21.4.2 设计主窗体 237
21.4.3 编写爬虫 237
21.4.4 启动爬虫 239
21.4.5 查看原图 241

第22章 使用多进程爬取电影资源(requests+bs4+multiprocessing +re+time)
22.1 案例效果预览 242
22.2 案例准备 242
22.3 业务流程 243
22.4 实现过程 243
22.4.1 分析请求地址 243
22.4.2 爬取电影详情页地址 244
22.4.3 爬取电影信息与下载地址 245

第23章 基于多进程实现二手房数据查询(requests_html+pandas+matplotlib+multiprocessing)
23.1 案例效果预览 248
23.2 案例准备 249
23.3 业务流程 249
23.4 实现过程 250
23.4.1 确认二手房数据位置 250
23.4.2 二手房数据的爬取 251
23.4.3 数据可视化显示 253

第24章 基于动态渲染页面爬取京东图书销量排行榜(requests_html+sqlite3+os)
24.1 案例效果预览 256
24.2 案例准备 257
24.3 业务流程 257
24.4 实现过程 257
24.4.1 分析请求地址 257
24.4.2 确认数据在网页HTML代码中的位置 257
24.4.3 编写爬虫程序 258

第25章 爬取中关村在线中的手机数据(requests_html+pymysql+random+time)
25.1 案例效果预览 260
25.2 案例准备 260
25.3 业务流程 261
25.4 实现过程 261
25.4.1 分析手机主页中每页地址 261
25.4.2 分析每个手机的详情页地址 262
25.4.3 确认详情页手机数据位置 262
25.4.4 创建MySQL数据表 262
25.4.5 编写爬虫程序 263

第26章 基于异步请求爬取北、上、广、深租房信息(requests+lxml+pandas+aiohttp+asyncio)
26.1 案例效果预览 267
26.2 案例准备 267
26.3 业务流程 268
26.4 实现过程 268
26.4.1 获取租房信息总页数 268
26.4.2 确认数据所在的HTML代码位置 271
26.4.3 编写爬虫提取数据 272

第27章 基于XPath爬取豆瓣电影Top250(requests+lxml+time+random)
27.1 案例效果预览 274
27.2 案例准备 275
27.3 业务流程 275
27.4 实现过程 275
27.4.1 分析请求地址 275
27.4.2 分析信息位置 276
27.4.3 爬虫代码的实现 277

第28章 分布式爬取新闻数据(scrapy+ pymysql+scrapy-redis正则表达式)
28.1 案例效果预览 279
28.2 案例准备 280
28.3 业务流程 280
28.4 实现过程 280
28.4.1 Redis数据库的安装 280
28.4.2 安装scrapy-redis模块 281
28.4.3 分析请求地址 282
28.4.4 创建数据表(MySQL) 282
28.4.5 创建Scrapy项目 283
28.4.6 分布式爬虫的启动 286

第29章 微信智能机器人(Flask+小米球ngrok)
29.1 案例效果预览 290
29.2 案例准备 291
29.3 业务流程 291
29.4 微信公众平台开发必备 291
29.4.1 注册订阅号 291
29.4.2 公众号基本配置 292
29.5 内网穿透工具 293
29.5.1 内网穿透工具简介 293
29.5.2 下载安装 293
29.5.3 测试外网域名 294
29.6 爬取糗事百科笑话 295
29.6.1 页面分析 295
29.6.2 随机爬取一条笑话 295
29.7 爬取天气信息 296
29.7.1 页面分析 296
29.7.2 爬取天气信息 297
29.8 微信智能机器人的实现 298
29.8.1 校验签名 298
29.8.2 填写配置信息 299
29.8.3 接收文本消息 299
29.8.4 整合笑话和天气功能 300

第3篇 强化篇
第30章 电商管家(PyQt5+pyqt5-tools+requests+pymysql+matplotlib)
30.1 系统需求分析 303
30.1.1 系统概述 303
30.1.2 系统可行性分析 304
30.1.3 系统用户角色分配 304
30.1.4 功能性需求分析 304
30.1.5 非功能性需求分析 304
30.2 系统设计 304
30.2.1 系统功能结构 304
30.2.2 系统业务流程 305
30.2.3 系统预览 305
30.3 系统开发必备 306
30.3.1 开发工具准备 306
30.3.2 文件夹组织结构 306
30.4 主窗体的UI设计 306
30.4.1 主窗体的布局 306
30.4.2 主窗体显示效果 308
30.5 设计数据库表结构 308
30.6 爬取数据 309
30.6.1 获取京东商品热卖排行信息 309
30.6.2 获取价格信息 313
30.6.3 获取评价信息 314
30.6.4 定义数据库操作文件 316
30.7 主窗体的数据展示 319
30.7.1 显示前10名热卖榜图文信息 319
30.7.2 显示关注商品列表 322
30.7.3 显示商品分类比例饼图 327
30.8 外设产品热卖榜 330
30.9 商品预警 332
30.9.1 关注商品中、差评预警 332
30.9.2 关注商品价格变化预警 334
30.9.3 更新关注商品信息 336
30.10 系统功能 337

第31章 火车票智能分析工具(PyQt5+matplotlib +requests+json+sys+time)?
31.1 系统需求分析 339
31.1.1 系统概述 339
31.1.2 系统可行性分析 340
31.1.3 系统用户角色分配 340
31.1.4 功能性需求分析 340
31.1.5 非功能性需求分析 340
31.2 系统设计 341
31.2.1 系统功能结构 341
31.2.2 系统业务流程 341
31.2.3 系统预览 341
31.3 系统开发必备 342
31.3.1 开发工具准备 342
31.3.2 文件夹组织结构 342
31.4 主窗体的UI设计 343
31.4.1 主窗体的布局 343
31.4.2 主窗体显示效果 347
31.5 爬取数据 347
31.5.1 获取请求地址与参数 347
31.5.2 下载数据文件 348
31.5.3 查询所有车票信息 352
31.5.4 卧铺票的查询与分析 354
31.5.5 查询车票起售时间 356
31.6 主窗体的数据显示 358
31.6.1 车票查询区域的数据显示 358
31.6.2 卧铺售票分析区域的数据显示 364
31.6.3 卧铺车票数量走势图的显示 366
31.6.4 查询车票起售时间的数据显示 369

附录
附录1 数据解析速查表 371
附录2 PyCharm 常用快捷键 377
附录3 PyCharm 常用设置 378

发送电子邮件联系我们