Python 3网络爬虫实战
作者:胡松涛 著
出版时间:2020年版
内容简介
本书从Python 3.8的安装开始,详细讲解从网页基础到Python网络爬虫的全过程。本书从实战出发,根据不同的需求选取不同的网络爬虫,并有针对性地讲解几种Python网络爬虫。 本书共12章,涵盖的内容有网络爬虫的技术基础、Python常用IDE的使用、Python数据的存储、Python爬虫常用模块、Scrapy爬虫、BeautifulSoup爬虫、PyQuery模块、Selenium模拟浏览器、PySpider框架图片验证识别、爬取App、爬虫与反爬虫等。 本书内容丰富,实例典型,实用性强,适合Python网络爬虫初学者、Python数据分析与挖掘技术初学者以及高等院校和培训学校相关专业的师生阅读。
目录
第1章 Python环境配置 1
1.1 Python简介 1
1.1.1 Python的历史由来 1
1.1.2 Python的现状 2
1.1.3 Python的应用 2
1.2 Python 3.8.0开发环境配置 4
1.2.1 在Windows下安装Python 4
1.2.2 在Windows下安装配置pip 8
1.2.3 在Linux下安装Python 9
1.2.4 在Linux下安装配置pip 11
1.2.5 永远的hello world 15
1.3 本章小结 19
第2章 爬虫基础快速入门 20
2.1 HTTP基本原理 20
2.1.1 URI和URL 20
2.1.2 超文本 21
2.1.3 HTTP和HTTPS 21
2.1.4 HTTP请求过程 22
2.1.5 请求 24
2.1.6 响应 26
2.2 网页基础 27
2.2.1 网页的组成 27
2.2.2 网页的结构 28
2.2.3 节点树及节点间的关系 30
2.2.4 选择器 36
2.3 爬虫的基本原理 37
2.3.1 爬虫概述 37
2.3.2 能抓取什么样的数据 37
2.3.3 JavaScript渲染页面 38
2.4 会话和Cookies 39
2.4.1 静态网页和动态网页 40
2.4.2 无状态HTTP 41
2.4.3 常见误区 42
2.5 代理的基本原理 42
2.5.1 基本原理 42
2.5.2 代理的作用 43
2.5.3 代理分类 43
2.5.4 常见代理设置 44
2.6 本章小结 44
第3章 数据存储与解析 45
3.1 文件存储 45
3.1.1 TXT文件存储 45
3.1.2 JSON文件存储 49
3.1.3 CSV文件存储 52
3.2 关系型数据库存储 57
3.2.1 连接数据库 59
3.2.2 创建表 59
3.2.3 插入数据 60
3.2.4 浏览数据 61
3.2.5 修改数据 62
3.2.6 删除数据 63
3.3 非关系型数据库存储 64
3.3.1 安装数据库 64
3.3.2 MongoDB概念解析 68
3.3.3 创建数据库 68
3.3.4 创建集合 69
3.3.5 插入文档 69
3.3.6 查询集合数据 71
3.3.7 修改记录 73
3.3.8 数据排序 74
3.3.9 删除文档 75
3.4 lxml模块解析数据 76
3.4.1 安装模块 76
3.4.2 XPath常用规则 76
3.4.3 读取文件进行解析 79
3.5 本章小结 81
第4章 Python爬虫常用模块 82
4.1 Python网络爬虫技术核心 82
4.1.1 Python网络爬虫实现原理 82
4.1.2 爬行策略 83
4.1.3 身份识别 83
4.2 Python 3标准库之urllib.request模块 84
4.2.1 urllib.request请求返回网页 84
4.2.2 urllib.request使用代理访问网页 86
4.2.3 urllib.request修改header 89
4.3 Python 3标准库之logging模块 93
4.3.1 简述logging模块 93
4.3.2 自定义模块myLog 97
4.4 re模块(正则表达式) 100
4.4.1 re模块(正则表达式的操作) 100
4.4.2 re模块实战 102
4.5 其他有用模块 103
4.5.1 sys模块(系统参数获取) 103
4.5.2 time模块(获取时间信息) 105
4.6 本章小结 108
第5章 Scrapy爬虫框架 109
5.1 安装Scrapy 109
5.1.1 在Windows下安装Scrapy环境 109
5.1.2 在Linux下安装Scrapy 110
5.1.3 vim编辑器 111
5.2 Scrapy选择器XPath和CSS 112
5.2.1 XPath选择器 112
5.2.2 CSS选择器 115
5.2.3 其他选择器 116
5.3 Scrapy爬虫实战一:今日影视 117
5.3.1 创建Scrapy项目 117
5.3.2 Scrapy文件介绍 119
5.3.3 Scrapy爬虫的编写 121
5.4 Scrapy爬虫实战二:天气预报 128
5.4.1 项目准备 129
5.4.2 创建并编辑Scrapy爬虫 130
5.4.3 数据存储到JSON 137
5.4.4 数据存储到MySQL 139
5.5 Scrapy爬虫实战三:获取代理 145
5.5.1 项目准备 145
5.5.2 创建编辑Scrapy爬虫 146
5.5.3 多个Spider 152
5.5.4 处理Spider数据 156
5.6 Scrapy爬虫实战四:糗事百科 158
5.6.1 目标分析 158
5.6.2 创建编辑Scrapy爬虫 159
5.6.3 Scrapy项目中间件——添加headers 160
5.6.4 Scrapy项目中间件——添加Proxy 163
5.7 Scrapy爬虫实战五:爬虫攻防 166
5.7.1 创建一般爬虫 166
5.7.2 封锁间隔时间破解 169
5.7.3 封锁Cookies破解 170
5.7.4 封锁User-Agent破解 170
5.7.5 封锁IP破解 176
5.8 本章小结 179
第6章 BeautifulSoup爬虫 180
6.1 安装BeautifulSoup环境 180
6.1.1 在Windows下安装BeautifulSoup 180
6.1.2 在Linux下安装BeautifulSoup 181
6.1.3 强大的IDE——Eclipse 181
6.2 BeautifulSoup解析器 190
6.2.1 bs4解析器选择 190
6.2.2 lxml解析器的安装 191
6.2.3 使用bs4过滤器 192
6.3 bs4爬虫实战一:获取百度贴吧内容 197
6.3.1 目标分析 197
6.3.2 项目实施 199
6.3.3 代码分析 206
6.3.4 Eclipse调试 207
6.4 bs4爬虫实战二:获取双色球中奖信息 208
6.4.1 目标分析 209
6.4.2 项目实施 211
6.4.3 保存结果到Excel 214
6.4.4 代码分析 219
6.5 bs4爬虫实战三:获取起点小说信息 220
6.5.1 目标分析 220
6.5.2 项目实施 222
6.5.3 保存结果到MySQL 224
6.5.4 代码分析 228
6.6 bs4爬虫实战四:获取电影信息 229
6.6.1 目标分析 229
6.6.2 项目实施 230
6.6.3 bs4反爬虫 233
6.6.4 代码分析 235
6.7 bs4爬虫实战五:获取音悦台榜单 236
6.7.1 目标分析 236
6.7.2 项目实施 237
6.7.3 代码分析 242
6.8 本章小结 243
第7章 PyQuery模块 244
7.1 PyQuery模块 244
7.1.1 什么是PyQuery模块 244
7.1.2 PyQuery与其他工具 244
7.1.3 PyQuery模块的安装 245
7.2 PyQuery模块的用法 247
7.2.1 使用字符串初始化 247
7.2.2 使用文件初始化 248
7.2.3 使用URL初始化 249
7.3 CSS筛选器的使用 250
7.3.1 基本CSS选择器 250
7.3.2 查找节点 251
7.3.3 遍历结果 255
7.3.4 获取文本信息 256
7.4 PyQuery爬虫实战一:爬取百度风云榜 258
7.5 PyQuery爬虫实战二:爬取微博热搜 259
7.6 本章小结 260
第8章 Selenium模拟浏览器 261
8.1 安装Selenium模块 261
8.1.1 在Windows下安装Selenium模块 261
8.1.2 在Linux下安装Selenium模块 262
8.2 浏览器选择 262
8.2.1 Webdriver支持列表 262
8.2.2 在Windows下安装PhantomJS 263
8.2.3 在Linux下安装PhantomJS 265
8.3 Selenium&PhantomJS抓取数据 266
8.3.1 获取百度搜索结果 267
8.3.2 获取搜索结果 269
8.3.3 获取有效数据位置 271
8.3.4 从位置中获取有效数据 273
8.4 Selenium&PhantomJS实战一:获取代理 274
8.4.1 准备环境 274
8.4.2 爬虫代码 276
8.4.3 代码解释 278
8.5 Selenium&PhantomJS实战二:漫画爬虫 279
8.5.1 准备环境 279
8.5.2 爬虫代码 281
8.5.3 代码解释 283
8.6 本章小结 284
第9章 PySpider框架的使用 285
9.1 安装PySpider 285
9.1.1 安装PySpider 285
9.1.2 使用PyQuery测试 291
9.2 PySpider实战一:优酷影视排行 293
9.2.1 创建项目 293
9.2.2 爬虫编写一:使用PySpider PyQuery实现爬取 295
9.2.3 爬虫编写二:使用PySpider BeautifulSoup实现爬取 301
9.3 PySpider实战二:电影下载 304
9.3.1 项目分析 304
9.3.2 爬虫编写 306
9.3.3 爬虫运行、调试 312
9.3.4 删除项目 317
9.4 PySpider实战三:音悦台MusicTop 320
9.4.1 项目分析 320
9.4.2 爬虫编写 321
9.5 本章小结 325
第10章 图形验证识别技术 326
10.1 图像识别开源库:Tesseract 326
10.1.1 安装Tesseract 326
10.1.2 设置环境变量 329
10.1.3 测试一:使用tesseract命令识别图片中的字符 330
10.1.4 测试二:使用pytesseract模块识别图片中的英文字符 331
10.1.5 测试三:使用pytesseract模块识别图片中的中文文字 332
10.2 对网络验证码的识别 333
10.2.1 图形验证实战一:读取网络验证码并识别 333
10.2.2 图形验证实战二:对验证码进行转化 334
10.3 实战三:破解滑块验证码 335
10.3.1 所需工具 335
10.3.2 解决思路 335
10.3.3 编写代码 336
10.4 本章小结 341
第11章 爬取App 342
11.1 Charles的使用 342
11.1.1 下载安装Charles 342
11.1.2 界面介绍 343
11.1.3 Proxy菜单 345
11.1.4 使用Charles进行PC端抓包 350
11.1.5 使用Charles进行移动端抓包 350
11.2 Mitmproxy的使用 351
11.2.1 安装Mitmproxy 351
11.2.2 启动Mitmproxy 352
11.2.3 编写自定义脚本 354
11.2.4 Mitmproxy事件 355
11.2.5 实战:演示Mitmproxy 358
11.3 实战:使用Mitmdump爬取App 362
11.3.1 事先准备 363
11.3.2 带脚本抓取 364
11.3.3 分析结果并保存 365
11.4 Appium的基本使用 366
11.4.1 安装Appium—直接下载安装包AppiumDesktop 366
11.4.2 安装Appium—通过Node.js 368
11.4.3 Android 开发环境配置 368
11.4.4 iOS 开发环境配置 368
11.4.5 使用Appium 369
11.4.6 操作App 371
11.5 本章小结 374
第12章 爬虫与反爬虫 375
12.1 防止爬虫IP被禁 375
12.1.1 反爬虫在行动 375
12.1.2 爬虫的应对 378
12.2 在爬虫中使用Cookies 382
12.2.1 通过Cookies反爬虫 382
12.2.2 带Cookies的爬虫 383
12.2.3 动态加载反爬虫 386
12.2.4 使用浏览器获取数据 386
12.3 本章小结 386