《精通Python爬虫框架Scrapy》PDF下载

  • 购买积分:10 如何计算积分?
  • 作  者:(美)迪米特里奥斯·考奇斯·劳卡斯(Dimitrios Kouzis Loukas)著;李斌译
  • 出 版 社:北京:人民邮电出版社
  • 出版年份:2018
  • ISBN:9787115474209
  • 页数:242 页
图书介绍:本书是掌握Scrapy开源爬虫框架的学习指南,先讲解了Scrapy框架的基础,然后讲解了使用Python和第三方API从任何源抽取数据、处理数据以及根据需求来呈现数据的方法。接下来有讲解了将爬取的数据存入数据库中的流程、搜索引擎的相关知识,以及使用Spark Streaming进行实时分析的方法。

第1章 Scrapy简介 1

1.1 初识Scrapy 1

1.2 喜欢Scrapy的更多理由 2

1.3 关于本书:目标和用途 3

1.4 掌握自动化数据爬取的重要性 4

1.4.1 开发健壮且高质量的应用,并提供合理规划 4

1.4.2 快速开发高质量最小可行产品 5

1.4.3 Google不会使用表单,爬取才能扩大规模 6

1.4.4 发现并融入你的生态系统 7

1.5 在充满爬虫的世界里做一个好公民 7

1.6 Scrapy不是什么 8

1.7 本章小结 9

第2章 理解HTML和XPath 10

2.1 HTML、DOM树表示以及XPath 10

2.1.1 URL 11

2.1.2 HTML文档 11

2.1.3 树表示法 13

2.1.4 你会在屏幕上看到什么 14

2.2 使用XPath选择HTML元素 15

2.2.1 有用的XPath表达式 16

2.2.2 使用Chrome获取XPath表达式 19

2.2.3 常见任务示例 20

2.2.4 预见变化 21

2.3 本章小结 22

第3章 爬虫基础 23

3.1 安装Scrapy 24

3.1.1 MacOS 24

3.1.2 Windows 25

3.1.3 Linux 25

3.1.4 最新源码安装 26

3.1.5 升级Scrapy 26

3.1.6 Vagrant:本书中运行示例的官方方式 27

3.2 UR2IM——基本抓取流程 28

3.2.1 URL 29

3.2.2 请求和响应 31

3.2.3 Item 31

3.3 一个Scrapy项目 37

3.3.1 声明item 38

3.3.2 编写爬虫 40

3.3.3 填充item 43

3.3.4 保存文件 45

3.3.5 清理——item装载器与管理字段 47

3.3.6 创建contract 50

3.4 抽取更多的URL 53

3.4.1 使用爬虫实现双向爬取 56

3.4.2 使用CrawlSpider实现双向爬取 59

3.5 本章小结 61

第4章 从Scrapy到移动应用 62

4.1 选择手机应用框架 62

4.2 创建数据库和集合 63

4.3 使用Scrapy填充数据库 65

4.4 创建手机应用 68

4.4.1 创建数据库访问服务 69

4.4.2 创建用户界面 69

4.4.3 将数据映射到用户界面 70

4.4.4 数据库字段与用户界面控件间映射 71

4.4.5 测试、分享及导出你的手机应用 72

4.5 本章小结 73

第5章 迅速的爬虫技巧 75

5.1 需要登录的爬虫 75

5.2 使用JSON API和AJAX页面的爬虫 81

5.3 30倍速的房产爬虫 85

5.4 基于Excel文件爬取的爬虫 90

5.5 本章小结 93

第6章 部署到Scrapinghub 94

6.1 注册、登录及创建项目 94

6.2 部署爬虫与计划运行 96

6.3 访问item 99

6.4 计划定时爬取 100

6.5 本章小结 101

第7章 配置与管理 102

7.1 使用Scrapy设置 102

7.2 基本设置 103

7.2.1 分析 104

7.2.2 性能 107

7.2.3 提前终止爬取 108

7.2.4 HTTP缓存和离线运行 108

7.2.5 爬取风格 109

7.2.6 feed 110

7.2.7 媒体下载 111

7.2.8 Amazon Web服务 113

7.2.9 使用代理和爬虫 113

7.3 进阶设置 114

7.3.1 项目相关设置 115

7.3.2 Scrapy扩展设置 116

7.3.3 下载调优 116

7.3.4 自动限速扩展设置 117

7.3.5 内存使用扩展设置 117

7.3.6 日志和调试 117

7.4 本章小结 118

第8章 Scrapy编程 119

8.1 Scrapy是一个Twisted应用 119

8.1.1 延迟和延迟链 122

8.1.2 理解Twisted和非阻塞I/O——一个Python故事 125

8.2 Scrapy架构概述 132

8.3 示例1:非常简单的管道 135

8.4 信号 136

8.5 示例2:测量吞吐量和延时的扩展 138

8.6 中间件延伸 141

8.7 本章小结 144

第9章 管道秘诀 145

9.1 使用REST API 146

9.1.1 使用treq 146

9.1.2 用于写入Elasticsearch的管道 146

9.1.3 使用Google Geocoding API实现地理编码的管道 149

9.1.4 在Elasticsearch中启用地理编码索引 156

9.2 与标准Python客户端建立数据库接口 157

9.3 使用Twisted专用客户端建立服务接口 161

9.4 为CPU密集型、阻塞或遗留功能建立接口 166

9.4.1 处理CPU密集型或阻塞操作的管道 166

9.4.2 使用二进制或脚本的管道 168

9.5 本章小结 172

第10章 理解Scrapy性能 173

10.1 Scrapy引擎——一种直观方式 173

10.1.1 级联队列系统 175

10.1.2 定义瓶颈 176

10.1.3 Scrapy性能模型 176

10.2 使用telnet获得组件利用率 178

10.3 基准系统 180

10.4 标准性能模型 182

10.5 解决性能问题 185

10.5.1 案例#1:CPU饱和 185

10.5.2 案例#2:代码阻塞 187

10.5.3 案例#3:下载器中的“垃圾” 188

10.5.4 案例#4:大量响应或超长响应造成的溢出 191

10.5.5 案例#5:有限/过度item并发造成的溢出 193

10.5.6 案例#6:下载器未充分利用 194

10.6 故障排除流程 197

10.7 本章小结 198

第11章 使用Scrapyd与实时分析进行分布式爬取 199

11.1 房产的标题是如何影响价格的 200

11.2 Scrapyd 200

11.3 分布式系统概述 203

11.4 爬虫和中间件的变化 205

11.4.1 索引页分片爬取 205

11.4.2 分批爬取URL 207

11.4.3 从设置中获取初始URL 211

11.4.4 在Scrapyd服务器中部署项目 213

11.5 创建自定义监控命令 215

11.6 使用Apache Spark流计算偏移量 216

11.7 运行分布式爬取 218

11.8 系统性能 220

11.9 关键要点 221

11.10 本章小结 221

附录A 必备软件的安装与故障排除 222