精通Scrapy网络爬虫电子书

精通Scrapy网络爬虫

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

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

作者简介:

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

目录

第1章初识Scrapy1
1.1网络爬虫是什么1
1.2Scrapy简介及安装2
1.3编写第一个Scrapy爬虫3
1.3.1项目需求4
1.3.2创建项目4
1.3.3分析页面5
1.3.4实现Spider6
1.3.5运行爬虫8
1.4本章小结11
第2章编写Spider12
2.1Scrapy框架结构及工作原理12
2.2Request和Response对象14
2.2.1Request对象15
2.2.2Response对象16
2.3Spider开发流程18
2.3.1继承scrapy.Spider19
2.3.2为Spider命名20
2.3.3设定起始爬取点20
2.3.4实现页面解析函数22
2.4本章小结22
第3章使用Selector提取数据23
3.1Selector对象23
3.1.1创建对象24
3.1.2选中数据25
3.1.3提取数据26
3.2Response内置Selector28
3.3XPath29
3.3.1基础语法30
3.3.2常用函数35
3.4CSS选择器36
3.5本章小结40
第4章使用Item封装数据41
4.1Item和Field42
4.2拓展Item子类44
4.3Field元数据44
4.4本章小结47
第5章使用ItemPipeline处理数据48
5.1ItemPipeline48
5.1.1实现ItemPipeline49
5.1.2启用ItemPipeline50
5.2更多例子51
5.2.1过滤重复数据51
5.2.2将数据存入
MongoDB54
5.3本章小结57
第6章使用LinkExtractor提取链接58
6.1使用LinkExtractor59
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实现Exporter72
7.3本章小结74
第8章项目练习75
8.1项目需求77
8.2页面分析77
8.3编码实现83
8.4本章小结88
第9章下载文件和图片89
9.1FilesPipeline和
ImagesPipeline89
9.1.1FilesPipeline使用
说明90
9.1.2ImagesPipeline使用
说明91
9.2项目实战:爬取matplotlib
例子源码文件92
9.2.1项目需求92 [1]
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.2Scrapy模拟登录114
10.2.1使用FormRequest114
10.2.2实现登录Spider117
10.3识别验证码119
10.3.1OCR识别119
10.3.2网络平台识别123
10.3.3人工识别127
10.4Cookie登录128
10.4.1获取浏览器
Cookie128
10.4.2CookiesMiddleware
源码分析129
10.4.3实现BrowserCookies-
Middleware132
10.4.4爬取知乎个人
信息133
10.5本章小结135
第11章爬取动态页面136
11.1Splash渲染引擎140
11.1.1render.html端点141
11.1.2execute端点142
11.2在Scrapy中使用Splash145
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.1SQLite156
12.2MySQL159
12.3MongoDB165
12.4Redis169
12.5本章小结173
第13章使用HTTP代理174
13.1HttpProxyMiddleware175
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.1Redis的使用200
14.1.1安装Redis200
14.1.2Redis基本命令201
14.2scrapy-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可以高效地开发网络爬虫应用。本书的读者只需要有Python语言基础即可,我们从零基础、逐步由浅入深进行讲解。第1~8章讲解Scrapy开发的核心基础部分,其中包括:
● 初识Scrapy
● 编写Spider
● 使用Selector提取数据

● 使用Item封装数据
● 使用Item Pipeline处理数据
● 使用Link Extractor提取链接
● 使用Exporter导出数据
● 项目练习
第9~14章讲解实际爬虫开发中使用频率最高的一些实用技术,其中包括:
● 下载文件和图片
● 模拟登录
● 爬取动态页面
● 存入数据库
● 使用HTTP代理
● 分布式爬取
本书特色
本书的宗旨是以实用和实战为教学目标,主要特色是:
● 所有基础部分的讲解都配有代码示例,而不仅仅是枯燥的文档。
● 案例选材方面以讲解知识点为核心,尽量选择专门供练习爬虫技术的网站(不易变动)或贴近日常生活的网站(京东、知乎、豆瓣、360)进行演示。

 

 


发表评论

:?: :razz: :sad: :evil: :!: :smile: :oops: :grin: :eek: :shock: :???: :cool: :lol: :mad: :twisted: :roll: :wink: :idea: :arrow: :neutral: :cry: :mrgreen: