网络爬虫的限制:

  来源审查:判断User-Agent进行限制

    检查来访HTTP协议头的User-Agent域,只响应浏览器或友好爬虫的访问。

    实际上HTTP协议头是可以通过技术上进行伪造。

  发布公告:robots协议

    告知所有爬虫网站的爬取策略,要求爬虫遵守。

robots协议(Robots Exclusion standard)网络爬虫排除标准

robots协议也叫robots.txt(统一小写)是一种存放于网站根目录下ASCII编码的文本文件,它通常告诉爬虫,此网站中的哪些内容是不应被爬虫获取的,哪些是可以被爬虫获取的。

  基本语法:

  User-agent: * 这里的*代表的所有的搜索引擎种类,*是一个通配符

  Disallow: /ABC/ 这里定义是禁止爬寻ABC目录下面的目录

  Disallow: /cgi-bin/*.htm 禁止访问/cgi-bin/目录下的所有以".htm"为后缀的URL(包含子目录)。

  Disallow: /*?* 禁止访问网站中所有包含问号 (?) 的网址

  Disallow: /.jpg$ 禁止抓取网页所有的.jpg格式的图片

  Disallow:/ab/adc.html 禁止爬取ab文件夹下面的adc.html文件。

  Allow: /cgi-bin/ 这里定义是允许爬寻cgi-bin目录下面的目录

  Allow: /tmp 这里定义是允许爬寻tmp的整个目录

  Allow: .htm$ 仅允许访问以".htm"为后缀的URL。

  Allow: .gif$ 允许抓取网页和gif格式图片

  Sitemap: 网站地图 告诉爬虫这个页面是网站地图

Tip:并不是所有的网站都有robots协议,如果这个网站没有Robots协议,根据协议任何爬虫都可以爬取该网站的任何信息。

robots协议是建议但非约束性,网络爬虫可以不遵守,但存在一定法律风险。

根据工程师的道德规范,应先自动或人工识别robots.txt协议后,再进行内容爬取。

类人行为可不参考 robots协议