《Python网络爬虫从入门到实践》PDF下载

  • 购买积分:10 如何计算积分?
  • 作  者:唐松,陈智铨编著
  • 出 版 社:北京:机械工业出版社
  • 出版年份:2017
  • ISBN:9787111578414
  • 页数:244 页
图书介绍:

第1章 网络爬虫入门 1

1.1 为什么要学网络爬虫 2

1.1.1 网络爬虫能带来什么好处 2

1.1.2 能从网络上爬取什么数据 3

1.1.3 应不应该学爬虫 3

1.2 网络爬虫是否合法 3

1.2.1 Robots协议 4

1.2.2 网络爬虫的约束 5

1.3 网络爬虫的基本议题 6

1.3.1 Python爬虫的流程 7

1.3.2 三个流程的技术实现 7

第2章 编写第一个网络爬虫 8

2.1 搭建Python平台 9

2.1.1 Python的安装 9

2.1.2 使用pip安装第三方库 10

2.1.3 使用编译器Jupyter编程 11

2.2 Python使用入门 13

2.2.1 基本命令 13

2.2.2 数据类型 14

2.2.3 条件语句和循环语句 15

2.2.4 函数 16

2.2.5 面向对象编程 17

2.3 编写第一个简单的爬虫 21

2.3.1 第一步:获取页面 22

2.3.2 第二步:提取需要的数据 23

2.3.3 第三步:存储数据 24

2.4 Python实践:基础巩固 25

2.4.1 Python基础试题 26

2.4.2 参考答案 27

2.4.3 自我实践题 30

第3章 静态网页抓取 31

3.1 安装Requests 32

3.2 获取响应内容 32

3.3 定制Requests 33

3.3.1 传递URL参数 33

3.3.2 定制请求头 34

3.3.3 发送POST请求 35

3.3.4 超时 36

3.4 Requests爬虫实践:TOP250电影数据 36

3.4.1 网站分析 37

3.4.2 项目实践 37

3.4.3 自我实践题 39

第4章 动态网页抓取 40

4.1 动态抓取的实例 41

4.2 解析真实地址抓取 42

4.3 通过Selenium模拟浏览器抓取 47

4.3.1 Selenium的安装与基本介绍 47

4.3.2 Selenium的实践案例 48

4.3.3 Selenium获取文章的所有评论 49

4.3.4 Selenium的高级操作 52

4.4 Selenium爬虫实践:深圳短租数据 55

4.4.1 网站分析 55

4.4.2 项目实践 57

4.4.3 自我实践题 60

第5章 解析网页 61

5.1 使用正则表达式解析网页 62

5.1.1 re.match方法 62

5.1.2 re.search方法 64

5.1.3 re.findall方法 64

5.2 使用BeautifulSoup解析网页 66

5.2.1 BeautifulSoup的安装 66

5.2.2 使用BeautifulSoup获取博客标题 67

5.2.3 BeautifulSoup的其他功能 68

5.3 使用lxml解析网页 72

5.3.1 lxml的安装 72

5.3.2 使用lxml获取博客标题 72

5.3.3 XPath的选取方法 74

5.4 总结 75

5.5 BeautifulSoup爬虫实践:房屋价格数据 76

5.5.1 网站分析 76

5.5.2 项目实践 77

5.5.3 自我实践题 79

第6章 数据存储 80

6.1 基本存储:存储至TXT或CSV 81

6.1.1 把数据存储至TXT 81

6.1.2 把数据存储至CSV 82

6.2 存储至MySQL数据库 84

6.2.1 下载安装MySQL 85

6.2.2 MySQL的基本操作 88

6.2.3 Python操作MySQL数据库 92

6.3 存储至MongoDB数据库 94

6.3.1 下载安装MongoDB 95

6.3.2 MongoDB的基本概念 98

6.3.3 Python操作MongoDB数据库 99

6.3.4 RoboMongo的安装与使用 101

6.4 总结 102

6.5 MongoDB爬虫实践:虎扑论坛 103

6.5.1 网站分析 103

6.5.2 项目实践 104

6.5.3 自我实践题 110

第7章 提升爬虫的速度 111

7.1 并发和并行,同步和异步 112

7.1.1 并发和并行 112

7.1.2 同步和异步 112

7.2 多线程爬虫 113

7.2.1 简单单线程爬虫 114

7.2.2 学习Python多线程 114

7.2.3 简单的多线程爬虫 117

7.2.4 使用Queue的多线程爬虫 120

7.3 多进程爬虫 122

7.3.1 使用multiprocessing的多进程爬虫 122

7.3.2 使用Pool+Queue的多进程爬虫 124

7.4 多协程爬虫 127

7.5 总结 129

7.5.1 回顾多线程、多进程、多协程 129

7.5.2 性能对比 130

第8章 反爬虫问题 132

8.1 为什么会被反爬虫 133

8.2 反爬虫的方式有哪些 133

8.2.1 不返回网页 134

8.2.2 返回非目标网页 134

8.2.3 获取数据变难 135

8.3 如何“反反爬虫” 135

8.3.1 修改请求头 135

8.3.2 修改爬虫的间隔时间 136

8.3.3 使用代理 139

8.4 总结 140

第9章 解决中文乱码 141

9.1 什么是字符编码 142

9.2 Python的字符编码encode和decode 144

9.3 解决中文编码问题 146

9.3.1 问题1:获取网站的中文显示乱码 147

9.3.2 问题2:非法字符抛出异常 148

9.3.3 问题3:网页使用gzip压缩 149

9.3.4 问题4:读写文件的中文乱码 150

9.4 总结 152

第10章 登录与验证码处理 153

10.1 处理登录表单 154

10.1.1 处理登录表单 154

10.1.2 处理cookies,让网页记住你的登录 158

10.1.3 完整的登录代码 160

10.2 验证码的处理 162

10.2.1 如何使用验证码验证 163

10.2.2 人工方法处理验证码 164

10.2.3 OCR处理验证码 167

10.3 总结 169

第11章 服务器采集 170

11.1 为什么使用服务器采集 171

11.1.1 大规模爬虫的需要 171

11.1.2 防止IP地址被封杀 171

11.2 使用动态IP拨号服务器 172

11.2.1 购买拨号服务器 172

11.2.2 登录服务器 172

11.2.3 使用Python更换IP 174

11.2.4 结合爬虫和更换IP功能 175

11.3 使用Tor代理服务器 176

11.3.1 Tor的安装 177

11.3.2 Tor的使用 180

第12章 分布式爬虫 184

12.1 安装Redis 185

12.2 修改Redis配置 188

12.2.1 修改Redis密码 188

12.2.2 让Redis服务器被远程访问 188

12.2.3 使用Redis Desktop Manager管理 189

12.3 Redis分布式爬虫实践 189

12.3.1 安装Redis库 190

12.3.2 加入任务队列 190

12.3.3 读取任务队列并下载图片 191

12.3.4 分布式爬虫代码 192

12.4 总结 194

第13章 爬虫实践一:维基百科 195

13.1 项目描述 196

13.1.1 项目目标 196

13.1.2 项目描述 196

13.1.3 深度优先和广度优先 198

13.2 网站分析 199

13.3 项目实施:深度优先的递归爬虫 201

13.4 项目进阶:广度优先的多线程爬虫 203

13.5 总结 207

第14章 爬虫实践二:知乎Live 208

14.1 项目描述 209

14.2 网站分析 209

14.3 项目实施 212

14.3.1 获取所有Live 212

14.3.2 获取Live的听众 215

14.4 总结 218

第15章 爬虫实践三:百度地图API 219

15.1 项目描述 220

15.2 获取API秘钥 221

15.3 项目实施 222

15.3.1 获取所有拥有公园的城市 224

15.3.2 获取所有城市的公园数据 225

15.3.3 获取所有公园的详细信息 229

15.4 总结 233

第16章 爬虫实践四:餐厅点评 234

16.1 项目描述 235

16.2 网站分析 235

16.3 项目实施 237

16.3.1 获取深圳的餐厅列表 237

16.3.2 获取餐厅的详细信息 242

16.4 总结 244