一、网络爬虫可能带来的危害
众所周知,网络爬虫使用不规范可能回音发一系列的问题,总结为以下几点:
-
网络骚扰(服务器性能)
-
法律风险(内容层面)
-
隐私泄露(个人隐私)
二、对网络爬虫的限制
1、来源审查:判断User-Agent进行限制
具体方法:检查来访HTTP协议头的User-Agent域,只响应浏览器或友好爬虫发起的访问。
2、发布公告:Robots协议
具体方法:告知所有爬虫网站的爬取策略和可爬取的内容,要求爬虫遵守。
通过上述方法可实现对爬虫道德和技术的一定限制。
三、Robots协议
1、协议全称
Robots Exclusion Standard 网络爬虫排除标准
2、作用与位置
作用:网站告知网络爬虫哪些内容是可爬取的,哪些是不可以爬取的。
位置:网站根目录下的robots.txt文件。
3、robots协议的解析
这里以京东的网站为例:
这里逐一进行解释。
第一行为协议涵盖对象,为:所有的访问来源。换句话说就是所有来源的爬虫都应该遵守此协议。
第二行,Disallow规定不允许访问以?开头的路径。
第三行,规定不允许访问符合pop/.html这种通配符的文件。
第四行,规定不允许访问符合pinpai/.html?*这种通配符的文件。
之后的几行,都是由User-Agent给出一个爬虫名,随后跟一个Disallow:/
这种格式的意思为,不允许指定的爬虫爬取网站的任何内容。
4、robots协议的基本语法
由上面的解析可以发现,通过robots协议,网站声明哪些内容可以被什么样的爬虫爬取。而这些协议由基本的User-Agent和Disallow语句构成。
具体格式如下:
User-Agent:爬虫名(或者使用通配符*表示所有的爬虫)
Disallow:/不允许爬取的目录名(或者用通配符组合而成的某个路径类型)
5、robots协议的使用
对于任何网络爬虫,它应该要可以做到自动或人工识别robots.txt,在进行内容爬取。
然而robots协议只是一个建议,而不具有强制约束性,但不遵守时需要知道会存在法律风险。
类人行为可不参考robots协议。(对服务器的自动访问相当于正常人的使用)