谢乾坤 python-Python爬虫开发:从入门到实战(微课版)

第 1章 绪论 1

1.1 爬虫 2

1.2 爬虫可以做什么 2

1.2.1 收集数据 2

1.2.2 尽职调查 3

1.2.3 刷流量和秒杀 3

1.3 爬虫开发技术 4

第 2章 Python基础 5

2.1 Python的安装和运行 6

2.1.1 在Windows中安装Python 6

2.1.2 在Mac OS中安装Python 7

2.1.3 在Linux中安装Python 8

2.2 Python开发环境 8

2.2.1 PyCharm介绍与安装 8

2.2.2 运行代码 9

2.3 Python的数据结构和控制结构 12

2.3.1 整数、浮点数和变量 12

2.3.2 字符串、列表、元组 13

2.3.3 数据的读取 14

2.3.4 字典与集合 16

2.3.5 条件语句 17

2.3.6 for循环与while循环 19

2.4 函数与类 21

2.4.1 函数 21

2.4.2 类与面向对象编程 28

2.5 阶段案例——猜数游戏 32

2.5.1 需求分析 32

2.5.2 核心代码构建 33

2.5.3 调试与运行 33

2.6 本章小结 34

2.7 动手实践 34

第3章 正则表达式与文件操作 35

3.1 正则表达式 36

3.1.1 正则表达式的基本符号 36

3.1.2 在Python中使用正则表达式 38

3.1.3 正则表达式提取技巧 41

3.2 Python文件操作 44

3.2.1 使用Python读/写文本文件 44

3.2.2 使用Python读/写CSV文件 46

3.3 阶段案例——半自动爬虫开发 49

3.3.1 需求分析 49

3.3.2 核心代码构建 50

3.3.3 调试与运行 51

3.4 本章小结 54

3.5 动手实践 54

第4章 简单的网页爬虫开发 55

4.1 使用Python获取网页源代码 56

4.1.1 Python的第三方库 56

4.1.2 requests介绍与安装 56

4.1.3 使用requests获取网页源代码 57

4.1.4 结合requests与正则表达式 59

4.2 多线程爬虫 60

4.2.1 多进程库(multiprocessing) 60

4.2.2 开发多线程爬虫 61

4.3 爬虫的常见搜索算法 62

4.3.1 深度优先搜索 62

4.3.2 广度优先搜索 63

4.3.3 爬虫搜索算法的选择 64

4.4 阶段案例——小说网站爬虫开发 64

4.4.1 需求分析 64

4.4.2 核心代码构建 65

4.4.3 调试与运行 68

4.5 本章小结 68

4.6 动手实践 68

第5章 高性能HTML内容解析 69

5.1 HTML基础 70

5.2 XPath 71

5.2.1 XPath的介绍 71

5.2.2 lxml的安装 71

5.2.3 XPath语法讲解 73

5.2.4 使用Google Chrome浏览器辅助构造XPath 77

5.3 Beautiful Soup4 81

5.3.1 BS4的安装 81

5.3.2 BS4语法讲解 82

5.4 阶段案例——大麦网演出爬虫 85

5.4.1 需求分析 85

5.4.2 核心代码构建 85

5.4.3 调试与运行 86

5.5 本章小结 87

5.6 动手实践 87

第6章 Python与数据库 88

6.1 MongoDB 89

6.1.1 MongoDB的安装 89

6.1.2 PyMongo的安装与使用 94

6.1.3 使用RoboMongo执行MongoDB命令 101

6.2 Redis 102

6.2.1 环境搭建 102

6.2.2 Redis交互环境的使用 103

6.2.3 Redis-py 104

6.3 MongoDB的优化建议 105

6.3.1 少读少写少更新 105

6.3.2 能用Redis不用MongoDB 106

6.4 阶段案例 107

6.4.1 需求分析 107

6.4.2 核心代码构建 107

6.4.3 调试与运行 108

6.5 本章小结 108

6.6 动手实践 108

第7章 异步加载与请求头 109

7.1 异步加载 110

7.1.1 AJAX技术介绍 110

7.1.2 JSON介绍与应用 110

7.1.3 异步GET与POST请求 111

7.1.4 特殊的异步加载 113

7.1.5 多次请求的异步加载 114

7.1.6 基于异步加载的简单登录 117

7.2 请求头(Headers) 118

7.2.1 请求头的作用 118

7.2.2 伪造请求头 119

7.3 模拟浏览器 122

7.3.1 Selenium介绍 123

7.3.2 Selenium安装 124

7.3.3 Selenium的使用 124

7.4 阶段案例 128

7.4.1 需求分析 128

7.4.2 核心代码构建 128

7.4.3 调试与运行 130

7.5 本章小结 131

7.6 动手实践 131

第8章 模拟登录与验证码 132

8.1 模拟登录 133

8.1.1 使用Selenium模拟登录 133

8.1.2 使用Cookies登录 135

8.1.3 模拟表单登录 137

8.2 验证码 139

8.2.1 肉眼打码 139

8.2.2 自动打码 141

8.3 阶段案例——自动登录果壳网 144

8.3.1 需求分析 144

8.3.2 核心代码构建 145

8.3.3 运行与调试 146

8.4 本章小结 147

8.5 动手实践 147

第9章 抓包与中间人爬虫 148

9.1 数据抓包 149

9.1.1 Charles的介绍和使用 149

9.1.2 App爬虫和小程序爬虫 156

9.2 中间人爬虫 163

9.2.1 mitmproxy的介绍和安装 163

9.2.2 mitmproxy的使用 164

9.2.3 使用Python定制mitmproxy 165

9.3 阶段案例——Keep热门 170

9.3.1 需求分析 170

9.3.2 核心代码构建 170

9.3.3 调试运行 172

9.4 本章小结 172

9.5 动手实践 172

第 10章 Android原生App爬虫 173

10.1 实现原理 174

10.1.1 环境搭建 175

10.1.2 使用Python操纵手机 178

10.1.3 选择器 180

10.1.4 操作 181

10.2 综合应用 188

10.2.1 单设备应用 188

10.2.2 多设备应用(群控) 191

10.3 阶段案例——BOSS直聘爬虫 196

10.3.1 需求分析 196

10.3.2 核心代码构建 196

10.3.3 调试与运行 197

10.4 本章小结 197

10.5 动手实践 198

第 11章 Scrapy 199

11.1 Scrapy的安装 200

11.1.1 在Windows下安装Scrapy 200

11.1.2 在Linux下安装Scrapy 202

11.1.3 在Mac OS下安装Scrapy 202

11.2 Scrapy的使用 203

11.2.1 创建项目 203

11.2.2 在Scrapy中使用XPath 207

11.3 Scrapy与MongoDB 213

11.3.1 items和pipelines的设置 213

11.3.2 在Scrapy中使用MongoDB 215

11.4 Scrapy与Redis 218

11.4.1 Scrapy_redis的安装和使用 218

11.4.2 使用Redis缓存网页并自动去重 218

11.5 阶段案例——博客爬虫 220

11.5.1 需求分析 220

11.5.2 核心代码构建 221

11.5.3 调试与运行 226

11.6 本章小结 228

11.7 动手实践 228

第 12章 Scrapy应用 229

12.1 中间件(Middleware) 230

12.1.1 下载器中间件 230

12.1.2 爬虫中间件 242

12.2 爬虫的部署 246

12.2.1 Scrapyd介绍与使用 246

12.2.2 权限管理 253

12.3 分布式架构 258

12.3.1 分布式架构介绍 258

12.3.2 如何选择Master 259

12.4 阶段案例 259

12.5 本章小结 259

第 13章 爬虫开发中的法律和道德问题 260

13.1 法律问题 261

13.1.1 数据采集的法律问题 261

13.1.2 数据的使用 261

13.1.3 注册及登录可能导致的法律问题 261

13.1.4 数据存储 261

13.1.5 内幕交易 261

13.2 道德协议 262

13.2.1 robots.txt协议 262

13.2.2 爬取频率 262

13.2.3 不要开源爬虫的源代码 262

13.3 本章小结 262

你可能感兴趣的