网络爬虫的分类和问题以及Robots协议
网页爬虫的尺寸:
- 爬取网页,玩转网页:小规模,数据量小,爬取速度不敏感。(
Request
库足够) - 爬取网站 爬取系列网站:中规模,数据量较大,爬取速度敏。(
Scrapy
库) - 爬取全网:大规模,搜索引擎,爬取速度关键;定制开发(如Google,百度,Bing这一类搜索引擎)
网络爬虫引发的问题:
- 网络爬虫的骚扰:受限于编写水平和目的,网络爬虫将会为Web服务器带来巨大的资源开销
- 网络爬虫的法律风险:服务器上的数据有产权归属,网络爬虫获取数据后牟利将带来法律风险
- 网络爬虫泄露隐私:网络爬虫可能具备突破简单访问控制的能力,获得被保护数据从而泄露个 人隐私
网络爬虫的限制:
-
来源审查:判断
UserAgent
进行限制 :- 检查来访HTTP协议头的
UserAgent
域,只响应浏览器或友好爬虫的访问 发布公告:Robots协议
- 检查来访HTTP协议头的
-
发布公告:Robots协议
告知所有爬虫网站的爬取策略,要求爬虫遵守
-
Robots协议的内容简介:
-
Robots Exclusion Standard (网络爬虫排除标准 )
作用:网站告知网络爬虫哪些页面可以抓取,哪些不行
-
一般位置:在网站的根目录下放置
robots.txt
文件
京东网站下的
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: /
Robots协议的基本语法:
User-agent: * # 注释: Disallow: /?* *代表所有 Disallow: /pop/*.html /代表根目录
其中:
User-agent
指明那些爬虫可以爬取
Disallow
则是不允许爬虫访问的资源的目录
Robots
协议的遵守方式:- 自动或人工识别
robots.txt
,再进行内容爬取 - Robots协议是建议但非约束性,网络爬虫可以不遵守,但存在法律风险
-