网络爬虫的尺寸
1.爬取网页 玩转网页
小规模,数据量小
爬取速度不敏感
Requests库
2.爬取网站爬取系列网站
中规模,数据规模较大
爬取速度敏感
Scrapy库
3.爬取全网
大规模,搜索引擎
爬取速度关键
定制开发
其中,小规模以爬取网页为主的爬虫占到了90%以上.它针对特定网页或者一系列网页会发挥很大的作用.
网络爬虫引发的问题:
1.网络爬虫带来性能骚扰
web服务器默认只接受人类的访问,而爬虫能应用计算机的快速功能来获取相关资源.它爬取的速度比人类要快到百倍甚至千倍.对服务器来讲,默认是以人数来约定它的访问能力,但是如果有爬虫来爬取相关的内容,甚至一秒钟爬取几万次几十万次的情况下,服务器是很难提供那么高的性能的.因此受限于编写水平和目的,网络爬虫将会为Web服务器带来巨大的资源开销.从而对网站的运行者来讲,爬虫形成了骚扰.
2.网络爬虫带来法律风险
服务器上的数据有产权归属,网络爬虫获取数据后牟利将带来法律风险.
3.网络爬虫泄露隐私
网络爬虫可能具备突破简单访问控制的能力,获得被保护数据,从而泄露个人隐私.
网络爬虫的限制:
• 来源审查:判断User‐Agent进行限制
检查来访HTTP协议头的User‐Agent域,只响应浏览器或友好爬虫的访问
• 发布公告:Robots协议
告知所有爬虫网站的爬取策略,要求爬虫遵守
Robots协议
Robots Exclusion Standard,网络爬虫排除标准
作用:网站告知网络爬虫哪些页面可以抓取,哪些不行
形式:在网站根目录下的robots.txt
案例:京东的Robots协议
https://www.jd.com/robots.txt
User-agent: *
Disallow: /?*
Disallow: /pop/*.html
Disallow: /pinpai/*.html?*
User-agent: EtaoSpider
Disallow: /
User-agent: HuihuiSpider
Disallow: /
User-agent: GwdangSpider
Disallow: /
User-agent: WochachaSpider
Disallow: /
# 注释,*代表所有,/代表根目录
User‐agent: *
Disallow:/
一些真实的Robots协议
http://www.baidu.com/robots.txt
http://news.sina.com.cn/robots.txt
http://www.qq.com/robots.txt
http://news.qq.com/robots.txt
http://www.moe.edu.cn/robots.txt (无robots协议)
Robots协议的遵守方式
Robots协议的使用
网络爬虫:自动或人工识别robots.txt,再进行内容爬取
约束性:Robots协议是建议但非约束性,网络爬虫可以不遵守,但存在法律风险
1.爬取网页 玩转网页
访问量很小:可以遵守
访问量较大:建议遵守
2.爬取网站 爬取系列网站
非商业且偶尔:建议遵守
商业利益:必须遵守
3.爬取全网
必须遵守
原则:类人行为可不参考Robots协议