精通Scrapy网络爬虫

精通Scrapy网络爬虫"

作者:刘硕
ISBN:9787302484936
定价:¥59
字数:千字
页数:
出版时间:2017.10.01
开本:
版次:1-3
装帧:
出版社:清华大学出版社
简介

本书深入系统地介绍了Python流行框架Scrapy的相关技术及使用技巧。全书共14章,从逻辑上可分为基础篇和高级篇两部分,基础篇重点介绍Scrapy的核心元素,如spider、selector、item、link等;高级篇讲解爬虫的高级话题,如登录认证、文件下载、执行JavaScript、动态网页爬取、使用HTTP代理、分布式爬虫的编写等,并配合项目案例讲解,包括供练习使用的网站,以及京东、知乎、豆瓣、360爬虫案例等。

本书案例丰富,注重实践,代码注释详尽,适合有一定Python语言基础,想学习编写复杂网络爬虫的读者使用。

前言

关于本书

如今是互联网的时代,而且正在迈入智能时代。人们早已意识到互联网中的数据是有待开采的巨大金矿,这些数据将会改善我们的生活,网络爬虫开发工作岗位的出现和不断增加正是基于对数据价值的重视。优秀的爬虫框架就像是开采金矿的强力挖掘机,如果你能娴熟地驾驶它们,就能大幅提高开采效率。

本书讲解目前最流行的Python爬虫框架Scrapy,它简单易用、灵活易拓展、文档丰富、开发社区活跃,使用Scrapy可以高效地开发网络爬虫应用。本书的读者只需要有Python语言基础即可,我们从零基础、逐步由浅入深进行讲解。第1~8章讲解Scrapy开发的核心基础部分,其中包括:

● 初识Scrapy

● 编写Spider

● 使用Selector提取数据

● 使用Item封装数据

● 使用Item Pipeline处理数据

● 使用Link Extractor提取链接

● 使用Exporter导出数据

● 项目练习

第9~14章讲解实际爬虫开发中使用频率最高的一些实用技术,其中包括:

● 下载文件和图片

● 模拟登录

● 爬取动态页面

● 存入数据库

● 使用HTTP代理

● 分布式爬取

本书特色

本书的宗旨是以实用和实战为教学目标,主要特色是:

● 所有基础部分的讲解都配有代码示例,而不仅仅是枯燥的文档。

● 案例选材方面以讲解知识点为核心,尽量选择专门供练习爬虫技术的网站(不易变动)或贴近日常生活的网站(京东、知乎、豆瓣、360)进行演示。

● 在讲解某些知识点时,对Scrapy源码进行分析,让读者能够“知其然并知其所以然”。

另外,Python是一门简单易学、功能强大、开发效率极高的语言,近年来在网络爬虫、数据分析、机器学习等领域得到广泛认可。虽然Python很容易上手,但想灵活恰当地运用它也并不简单。作者在慕课网(www.imooc.com)上推出了一套《Python高级进阶实战》课程,可供有需求的读者进行参考:http://coding.imooc.com/class/62.html。

致谢

感谢康烁和陈渝老师在清华大学信息研究院工作期间对我在专业方面的耐心指导。

感谢清华大学出版社的王金柱编辑给予我这次写作的机会以及在写作方面的指点。

感谢赵佳音同事认真阅读全书并提出了许多的宝贵建议。

感谢剑超和任怡同学认真审阅全书并对书中代码在多个Python版本上进行测试。

感谢女儿刘真,她的笑容化解了写作本书时偶尔的小烦躁。

编  者    

2017年8月8日

目录

第1章  初识Scrapy 1

1.1  网络爬虫是什么 1

1.2  Scrapy简介及安装 2

1.3  编写第一个Scrapy爬虫 3

1.3.1  项目需求 4

1.3.2  创建项目 4

1.3.3  分析页面 5

1.3.4  实现Spider 6

1.3.5  运行爬虫 8

1.4  本章小结 11

第2章  编写Spider 12

2.1  Scrapy框架结构及工作原理 12

2.2  Request和Response对象 14

2.2.1  Request对象 15

2.2.2  Response对象 16

2.3  Spider开发流程 18

2.3.1  继承scrapy.Spider 19

2.3.2  为Spider命名 20

2.3.3  设定起始爬取点 20

2.3.4  实现页面解析函数 22

2.4  本章小结 22

第3章  使用Selector提取数据 23

3.1  Selector对象 23

3.1.1  创建对象 24

3.1.2  选中数据 25

3.1.3  提取数据 26

3.2  Response内置Selector 28

3.3  XPath 29

3.3.1  基础语法 30

3.3.2  常用函数 35

3.4  CSS选择器 36

3.5  本章小结 40

第4章  使用Item封装数据 41

4.1  Item和Field 42

4.2  拓展Item子类 44

4.3  Field元数据 44

4.4  本章小结 47

第5章  使用Item Pipeline处理数据 48

5.1  Item Pipeline 48

5.1.1  实现Item Pipeline 49

5.1.2  启用Item Pipeline 50

5.2  更多例子 51

5.2.1  过滤重复数据 51

5.2.2  将数据存入

MongoDB 54

5.3  本章小结 57

第6章  使用LinkExtractor提取链接 58

6.1  使用LinkExtractor 59

6.2  描述提取规则 60

6.3  本章小结 65

第7章  使用Exporter导出数据 66

7.1  指定如何导出数据 67

7.1.1  命令行参数 67

7.1.2  配置文件 69

7.2  添加导出数据格式 70

7.2.1  源码参考 70

7.2.2  实现Exporter 72

7.3  本章小结 74

第8章  项目练习 75

8.1  项目需求 77

8.2  页面分析 77

8.3  编码实现 83

8.4  本章小结 88

第9章  下载文件和图片 89

9.1  FilesPipeline和

ImagesPipeline 89

9.1.1  FilesPipeline使用

说明 90

9.1.2  ImagesPipeline使用

说明 91

9.2  项目实战:爬取matplotlib

例子源码文件 92

9.2.1  项目需求 92

9.2.2  页面分析 94

9.2.3  编码实现 96

9.3  项目实战:下载360图片 103

9.3.1  项目需求 104

9.3.2  页面分析 104

9.3.3  编码实现 107

9.4  本章小结 109

第10章  模拟登录 110

10.1  登录实质 110

10.2  Scrapy模拟登录 114

10.2.1  使用FormRequest 114

10.2.2  实现登录Spider 117

10.3  识别验证码 119

10.3.1  OCR识别 119

10.3.2  网络平台识别 123

10.3.3  人工识别 127

10.4  Cookie登录 128

10.4.1  获取浏览器

Cookie 128

10.4.2  CookiesMiddleware

源码分析 129

10.4.3  实现BrowserCookies-

Middleware 132

10.4.4  爬取知乎个人

信息 133

10.5  本章小结 135

第11章  爬取动态页面 136

11.1  Splash渲染引擎 140

11.1.1  render.html端点 141

11.1.2  execute端点 142

11.2  在Scrapy中使用Splash 145

11.3  项目实战:爬取toscrape

中的名人名言 146

11.3.1  项目需求 146

11.3.2  页面分析 146

11.3.3  编码实现 147

11.4  项目实战:爬取京东商城

中的书籍信息 149

11.4.1  项目需求 149

11.4.2  页面分析 149

11.4.3  编码实现 152

11.5  本章小结 154

第12章  存入数据库 155

12.1  SQLite 156

12.2  MySQL 159

12.3  MongoDB 165

12.4  Redis 169

12.5  本章小结 173

第13章  使用HTTP代理 174

13.1  HttpProxyMiddleware 175

13.1.1  使用简介 175

13.1.2  源码分析 177

13.2  使用多个代理 179

13.3  获取免费代理 180

13.4  实现随机代理 184

13.5  项目实战:爬取豆瓣电影

信息 187

13.5.1  项目需求 188

13.5.2  页面分析 189

13.5.3  编码实现 194

13.6  本章小结 198

第14章  分布式爬取 199

14.1  Redis的使用 200

14.1.1  安装Redis 200

14.1.2  Redis基本命令 201

14.2  scrapy-redis源码分析 206

14.2.1  分配爬取任务

部分 207

14.2.2  汇总爬取数据

部分 214

14.3  使用scrapy-redis进行分

布式爬取 217

14.3.1  搭建环境 217

14.3.2  项目实战 218

14.4  本章小结 224

 

作者简介

编辑推荐

本书以应用为出发点,详细深入地介绍了Python流行框架Scrapy的核心技术及网络爬虫的开发技巧。

本书分为基础篇和高级篇两部分,基础篇重点介绍Scrapy的核心元素,如spider、selector、item、link等;高级篇讲解如登录认证、文件下载、执行JavaScript、动态网页爬取、使用HTTP代理、分布式爬虫的编写等内容。

为方便读者快速上手,本书还设计了大量项目案列,包括供练习用的网站的爬取以及如京东、知乎、豆瓣、360等网站的爬取。

本书很适合有一定Python语言基础,想学习编写复杂网络爬虫的读者使用。此外,书中涉及的关联知识很丰富,可以帮助读者拓展知识面,掌握更多实用技能。

作者寄语

刘硕:硕士,曾就职于知名外企,从事一线开发工作10年,目前主要从事Python开发与教学工作,在慕课网开设有多门Python课程,深受学员欢迎。

电子资料

www.luweidong.cn

下一个