没有合适的资源?快使用搜索试试~ 我知道了~
本讲义为高级爬虫课程的一部分。通过对各种爬虫的主流技术进行研究得出了关于目前网络爬虫所遇到的问题与解决方案进行了较为详细的阐述。在实例中,选用了对国内主流的豆瓣,猫眼电影,今日头条等进行实际的数据抓取。
资源推荐
资源详情
资源评论
于目前网络爬虫所遇到的问题与解决方案进行了较为详细的阐述。在实例中,选用了
对国内主流的豆瓣,猫眼电影,今日头条等进行实际的数据抓取,但是随着时间流逝,
目标网站的更新,可能有部分代码无法正常运行,请及时联系 g-zhaojun@tedu.cn 进行
改进。本讲义研究内容和组织结构按照如下编排:
第一章:爬虫简介,简单介绍了什么是爬虫,爬虫的作用,及如何实现一个爬虫,
爬虫所需要的先决知识及关键核心技术等等,分级别的告诉大家初级爬虫工程师,中
级爬虫工程师及高级爬虫工程师所需要的知识体系及技能。
第二章:介绍了关于爬虫的一些基本常识,包括爬虫的法律风险等,之后介绍了
怎么对需要爬取的网站进行背景调研:网站的 Robots 协议,Sitemap,怎么估算网站的
大小,怎么识别网站用了什么技术架构,怎么寻找网站的所有者等等,这些都是在抓
取一个网站之前所需要做的背景调研,以便我们更好的能够抓取到网站的信息。
第三章:通过实例给大家展示在 Python 中一个简单的爬虫应该怎么写,同时简单
复习一下爬虫的相关网络知识,主要是 HTTP, HTTPS 协议,最后介绍了爬虫爬取数据
两种常用算法策略:广度优先和深度优先的策略,及实际项目如何选择策略。
第四章:介绍了怎么对爬取到的内容进行提取,对结构化的数据与非结构化的数
据 分 别 怎 么 进 行 提 取 , 常 见 的 文 件 格 式 JSON , XML , HTML 等 , 及 Beautiful
Soup,lxml,正则表达式等等提取数据的方法,并对各种数据,数据解析方法及使用
场景进行了总结。
第五章:介绍了针对动态网页数据的抓取,可以采用的策略:模拟网络数据包的
过程及使用内置浏览器的方案 Selenium + PhantomJS 的策略,分别用示例说明了这种方
法各自的优缺点。
第六章:简单介绍下讲述怎么登录,提交表单,怎么使用 Cookie 记录管理登录状
态,怎么使用图像识别技术来尝试破解验证码。
第七章:讲述了怎么存储爬取到的数据,怎么做持久化,如何选择及使用 MySQL,
MongoDB,HBase 等数据库进行存储,简单介绍一下怎么对数据进行压缩存储,以节
省存储空间。
第八章:高效爬虫之路,怎么使用多线程,多进程来提升爬虫爬取数据的效率,
简单介绍下怎么来调度并行爬虫,怎么设置代理服务器,来防止爬虫在告诉爬取数据
时尽可能不被反爬程序发现。
第九章:简单介绍下怎么去重,怎么使用 Redis 数据库进行去重,大数据量时怎么
使用 HASH 算法 Bloom Filter 减少空间消耗。
II
第十章:介绍 Scrapy 框架,如何快速使用 Scrapy 搭建一个网站的爬虫,如何使用
Scrapy-Redis 快速搭建一个分布式爬虫的框架。
第十一章:介绍下常用的反爬策略, 怎么解决 HTTPS 对爬虫的阻碍行为。
第十二章:其他,简单介绍下如果使用机器学习的方法优化爬虫爬取数据的策略,
以及如果使用爬虫爬取的数据,对于爬虫的时效性问题,怎么设计其更新的频率,怎
么尝试使用机器学习的方法调节其自动更新的频率。
III
目 录
内容简介......................................................................................................................................I
第一章 爬虫简介.......................................................................................................................7
1.1 什么是网络爬虫.....................................................................................................................................7
1.1.1
爬虫的简单定义
................................................................................................................................7
1.1.2
爬虫的分类
........................................................................................................................................7
1.2 为什么需要爬虫.....................................................................................................................................8
1.2.1
爬虫的用途
........................................................................................................................................8
1.2.2
怎么做爬虫
......................................................................................................................................10
第二章 爬虫的基本常识.........................................................................................................13
2.1 爬虫的合法性问题................................................................................................................................13
2.2 爬虫的准备工作:网站的背景调研....................................................................................................13
2.2.1 robots
协议
.......................................................................................................................................13
2.2.2
网站地图
sitemap.............................................................................................................................14
2.2.3
估算网站的大小
..............................................................................................................................14
2.2.4
识别网站用了何种技术
..................................................................................................................15
第三章 简单爬虫的实现.........................................................................................................18
3.1 可能是史上最简单的爬虫 DEMO............................................................................................................18
3.2 回顾一下 HTTP,HTTPS 协议............................................................................................................... 18
3.3 关于爬虫抓取的策略............................................................................................................................24
3.3.1
深度优先算法
..................................................................................................................................24
3.3.2
广度
/
宽度优先算法
.........................................................................................................................24
3.4.3
实践中怎么来组合抓取策略
..........................................................................................................26
第四章 提取网页中的信息.....................................................................................................27
4.1 数据的类型........................................................................................................................................... 27
4.2 关于 XML,HTML,DOM 和 JSON 文件.....................................................................................................28
4.2.1 XML, HTML, DOM.............................................................................................................................28
4.2.2 JSON
文件
.........................................................................................................................................31
4.3 怎么提取网页中的信息........................................................................................................................36
4.3.1 XPath
与
lxml....................................................................................................................................36
4.3.2 Beau(fulSoup4..................................................................................................................................39
4.3.3
正则表达式
re..................................................................................................................................41
IV
第五章 动态网页的挑战.........................................................................................................45
5.1 动态网页的使用场景............................................................................................................................45
5.2 回到与 HTTP 服务器发送请求数据的原始方法..................................................................................45
5.2.1 GET
方法
...........................................................................................................................................45
5.2.2 POST
方法
.........................................................................................................................................48
5.3 更加难以对付的动态网站....................................................................................................................49
5.3.1
应对需要多次数据的交互模拟的网站
..........................................................................................49
5.3.2 Selenium............................................................................................................................................49
5.3.3 PhantomJS
及浏览器
........................................................................................................................49
5.3.4 Selenium + PhantomJS......................................................................................................................51
5.4 关于动态网站信息抓取的总结............................................................................................................51
第六章 表单与爬虫登录问题.................................................................................................53
6.1 关于表单...............................................................................................................................................53
6.2 管理 COOKIE...............................................................................................................................................53
6.2.1
使用
cookie
登录
..............................................................................................................................53
6.2.2 ##
补充知识
cookiejar
的使用
..........................................................................................................54
6.3 关于验证码(CAPTCHA)....................................................................................................................55
第七章 爬虫的持久化问题.....................................................................................................57
7.1 MYSQL.......................................................................................................................................................58
7.2 MONGODB..................................................................................................................................................58
7.2.1
什么是
MongoDB.............................................................................................................................58
7.2.2
怎么在爬虫中使用
MongoDB.........................................................................................................58
7.3 HDFS, HBASE..............................................................................................................................................58
第八章 高效率的爬取数据.....................................................................................................59
8.1 多进程爬虫........................................................................................................................................... 59
8.2 多线程爬虫........................................................................................................................................... 59
8.2.1
关于
GIL............................................................................................................................................59
8.2.2
线程池的出场
..................................................................................................................................59
8.3 关于代理服务器的设置........................................................................................................................59
第九章 大数据量时的去重.....................................................................................................60
9.1 怎么去重...............................................................................................................................................61
9.2 REDIS 数据库.............................................................................................................................................61
9.2.1
关于
Redis.........................................................................................................................................61
9.2.2
实际项目中使用
Redis.....................................................................................................................61
9.3 BLOOMFILTER...............................................................................................................................................61
V
剩余63页未读,继续阅读
资源评论
南城忆一指流砂
- 粉丝: 8
- 资源: 5
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
最新资源
资源上传下载、课程学习等过程中有任何疑问或建议,欢迎提出宝贵意见哦~我们会及时处理!
点击此处反馈
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功