一 网络爬虫引发的问题
- 网络爬虫的尺寸
- 爬取网页,玩转网页:小规模,数据量小,爬取速度不敏感,主要使用Requests库。
- 爬取网站,爬取系列网站:中规模,数据规模较大,对爬取速度较敏感,使用专业的Scrapy库。
- 爬取全网:大规模爬取,例如搜索引擎,爬取速度关键,只能定制开发,无第三方库。
- 网络爬虫产生的问题
- 网络爬虫对服务器产生骚扰
服务器默认是人去访问的,而爬虫访问的速度是人访问速度的千百倍,对服务器产生了实质的骚扰。 - 网络爬虫的法律风险
服务器上的数据默认是归属于网站和用户共同所有,爬虫获取数据后若用来谋取利益,会带来法律上的风险。 - 网络爬虫泄露隐私
- 对网络爬虫进行限制
- 来源审查:判断User-Agent进行限制
检查来访HTTP协议头的User-Agent域,只响应浏览器或友好爬虫的访问。 - 发布公告:Robots协议
告知所有爬虫网站的爬取策略,要求爬虫遵守
二 Robots协议
Robots Exclusion Standard 网络爬虫的排除标准
作用:网站告知网络爬虫哪些页面可以抓取,哪些不行。
形式:在网站根目录下的robots.txt文件
Robots协议的基本语法:
User-agent: #表明哪些爬虫,* 代表所有
Disallow: #代表不允许访问的目录
案例:京东的robots协议 http://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: /