反爬虫技术与搜索引擎的爬虫是矛盾的吗

突发奇想,既然反爬虫技术能够防止爬虫爬取自己网站的内容,那Google、百度等搜索引擎的蜘蛛怎么爬取网站内容呢?

在网站的根目录,通常会存放一个robots.txt,它就是爬虫协议:

robots.txt(统一小写)是一种存放于网站根目录下的ASCII编码的文本文件,它通常告诉网络搜索引擎的漫游器(又称网络蜘蛛),此网站中的哪些内容是不应被搜索引擎的漫游器获取的,哪些是可以被漫游器获取的。因为一些系统中的URL是大小写敏感的,所以robots.txt的文件名应统一为小写。robots.txt应放置于网站的根目录下。如果想单独定义搜索引擎的漫游器访问子目录时的行为,那么可以将自定的设置合并到根目录下的robots.txt,或者使用robots元数据(Metadata,又称元数据)——维基百科

例如以下这段代码,它允许百度爬取,不允许Google爬取:

User-agent: Baiduspider
Disallow: 
User-agent: Googlebot
Disallow: /
User-agent: *
Disallow: 
Disallow: /bin/
Sitemap: http://domain.com/sitemap.xml

可以从http://tool.chinaz.com/robots/生成robots.txt的文件内容

例如github,设置了不允许百度爬取,允许Google爬取,因此百度搜索不到github的内容,但是Google却可以 

但无论如何,robots.txt只是一个约定,不存在强制性,爬虫就不一定会遵守。

搜索引擎的爬虫是善意的爬虫,互联网中一半以上的流量都是爬虫创造的,比如说12306的爬虫动辄刷新数万次。对于不遵守robots协议的爬虫,就需要反爬,如何反爬虫呢?

如上面的代码所示,网站可以通过爬虫的UserAgent识别出它是谁,进而进行访问过滤,但是UserAgent可以被伪造,无法单纯起到过滤恶意爬虫的效果。

反爬虫还可以通过IP限制、权限限制(如QQ空间仅好友可见)、频率限制(如访问频率过高则拒绝访问)、使用cookie、设置验证码/滑块等等策略实现。

所以反爬虫技术针对的是恶意爬虫,对于遵守robots协议的搜索引擎,不会进行限制

搜索引擎不遵守robots协议的典型案例:

  • BE违规抓取eBay
  • 360搜索无视robots协议
  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值