如何阻止百度蜘蛛


15

我的大部分访问都是来自百度蜘蛛。我认为它根本不会帮助搜索引擎,因此我正在考虑如何阻止它们。可以通过iptables完成吗?我正在使用nginx作为我的网络服务器。


2
我为什么不呢?我不要中国交通。
Zhianc

6
我并不是说你不应该,我是在问为什么要打扰。他们在某种程度上伤害您吗?忽略就不容易吗?“不想要中国人来往”在这里并不是一个真正的答案,只是边缘化的仇外心理。阻止一个搜索引擎与阻止中文几乎不一样,因此您甚至没有任何意义。在我看来,您可能一直在寻找基于错误问题的解决方案。但是显然您确实只是想任意阻止蜘蛛,所以我想继续吧。
Su

7
@Su',我发现百度蜘蛛在我的网站上极其激进地爬网,从而阻止了合法流量。而且,我还发现百度蜘蛛不遵守robots.txt规则。
starbeamrainbowlabs 2015年

2
我每秒从所谓的百度蜘蛛获得1-2次点击。每次匹配都会在我的服务器上生成一个新的会话文件。我有一个用于删除这些会话文件的脚本,但是那些蜘蛛程序也使我的MySQL服务器超载。我绝对想阻止他们。
Buttle Butkus 2015年

2
可以确认baiduspider或冒充baiduspider的东西不道德地爬网并忽略robots.txt指令。
JMC 2015年

Answers:


8

在您的robots.txt中添加

#Baiduspider
User-agent: Baiduspider
Disallow: /

#Yandex
User-agent: Yandex
Disallow: /

5
如果他们不尊重robots.txt怎么办?
Zhianc

5
我碰巧知道从我的IP地址进行的“ Baiduspider / 2.0”访问不遵守我网站上的robots.txt。同样,他们经常使用来自同一IP地址块的协调访问(相隔几分钟),而不使用“ Baiduspider”用户代理ID。
mgkrebbs 2012年

Yandex遵守robots.txt的规定,直到我意识到我们的业务中有很大一部分来自俄罗斯并不得不将其移除后,我才将它们锁定。百度,您必须检查netblock。并非所有百度宣布的UA实际上都是百度,因此您需要对合法的百度流量进行robots.txt阻止,然后在.htaccess中对剩余的剩余内容进行UA字符串阻止,然后浪费您的生命进行逐块识别和拒绝剩下的围绕UA字符串块。就像增加服务器来承担流量一样,它的工作量也很大。
Fiasco Labs 2012年

2
我已经User-agent: *和baiduspider访问继续进行。
reinierpost

3
Yandex是针对俄罗斯市场的另一种搜索引擎,因此,当问题根本不问问题时仅在此处将其包括在内,并且不写任何关于它的想法是不负责任的。
收藏者

7

我刚刚成功阻止了中国搜索机器人Baiduspider访问我网站上的任何内容。由于以下原因,我决定这样做。

决定封锁的原因

  1. 大约每20个对我服务器的请求都是来自一个百度bot。这是不礼貌的行为。Baidubot占我网站带宽使用的5%。
  2. 我付出了很多努力来保持网站上的资源较小,并利用诸如浏览器缓存之类的技术来在速度和带宽上取得小小的成功。合理的做法是考虑通过阻止Baidubot释放5%的费用。
  3. 由于网站的内容特定于英国,没有中文版本,并且收入来自针对英国市场的广告,因此可能会损失一些中文流量,这对企业而言是可以接受的风险。

因此,我希望Su'和其他关注仇外心理的人能够理解这一决定,是对不礼貌的要求的冷淡回应。

方法

Baiduspider使用许多不同的IP地址访问我的服务器,但是这些地址确实在一定范围内。因此,我的.htaccess文件现在包含以下几行:

order allow,deny 
allow from all
# Block access to Baiduspider 
deny from 180.76.5.0/24 180.76.6.0/24 123.125.71.0/24 220.181.108.0/24 

底线基本上描述了4个IP范围,在这些IP范围中,我知道Baiduspider,并且只有Baiduspider可以访问我的服务器。4个范围中的每一个都是256个连续地址(总共1024个)。请注意,deny from...如果您尚未阅读CIDR范围,则该行IP范围的语法可能会非常混乱。请注意,这0/24意味着从0开始的256个大小范围,因此180.76.5.0/24实际上意味着180.76.5.0和之间的每个IP地址180.76.5.255。是的,不是特别明显!但是,如果您想了解原因或只是感到困惑,请访问http://www.mediawiki.org/wiki/Help:Range_blocks

摘要

互联网应该是免费,开放和公平的。但这意味着像百度这样的组织会学会遵守Robots.txt,并且对爬网的规律性不那么贪婪。我的解决方案涉及修补功能非常强大的设置,因此,在弄乱.htaccess文件之前,请务必备份原始文件,以备不时之需。继续需要您自担风险。


他们的IP地址块可能会改变,因此需要维修不时
ASGS

5

您可以在其中使用以下指令robots.txt来禁止爬网。

# robots.txt
User-agent: Baiduspider
Disallow: /

但是,抓取工具可能会决定忽略robots.txt的内容。此外,该文件可以由搜索引擎缓存,并且反映更改需要花费时间。

最有效的方法是使用服务器功能。将以下规则添加到nginx.conf文件中,以在服务器级别阻止百度。

if ($http_user_agent ~* ^Baiduspider) {
  return 403;
}

请记住重新启动或重新加载Nginx以便应用更改。


3

刚刚决定阻止百度,因为它给我们带来的流量对于他们的主动扫描太微不足道了。此外,他们现在还运行一个代理,该代理可以模拟浏览器并启动JavaScript代码(例如Google Analytics(分析)),并弄乱我们的统计信息。

不错的版本是使用以下命令更新robots.txt

User-agent: Baiduspider
Disallow: /
User-agent: Baiduspider-video
Disallow: /
User-agent: Baiduspider-image
Disallow: /

但是考虑到其他人在这里写的内容以及使用隐藏他们的存在的用户代理的方式,我会完全阻止其IP地址。以下是在nginx中完成的方式

# Baidu crawlers
deny 123.125.71.0/24;
deny 180.76.5.0/24;
deny 180.76.15.0/24;
deny 220.181.108.0/24;

2

WordPress解决方案(不是最好的,但有帮助)

Biadu蜘蛛也有同样的问题,我的游戏机使用top在我的游戏机中排名超过35,这很激进。显然,即使是一台快速的计算机也无法有效地处理外部请求(运行于35 ....)。

我追踪到IP的数量(来自那所大学的大楼????)有几百个,主要是两个用户代理)

直接后果?由于我拥有云服务器,因此必须将其升级到更高的内存,以允许下降响应。

先前的答案:

#Baiduspider
User-agent: Baiduspider
Disallow: /

百度似乎完全无法尊重robot.txt的指示。

我做了什么:

我为Wordpress安装了WP-Ban插件(免费),并禁止了以下操作:

用户代理:

  • Baiduspider+(+http://www.baidu.com/search/spider.htm)

  • Mozilla/5.0 (compatible; Baiduspider/2.0; +http://www.baidu.com/search/spider.html)

此外,使用Wp Super Cache,我将相对错误页面重新寻址到静态页面,因此整个wordpress安装不会/或者至少仅对于禁止的用户代理检查Mysql数据表。

(这是标准的Wordpress blablabla,因此每个能够安装Wordpress插件的人都可以做到这一点,因为此过程不需要编码或ftp访问)

我同意每个人的观点:互联网是免费的,禁止任何人或任何人绝对是任何人最后要做的事情,但是Baidoo今天要每月给我多付40美元,这只是为了爬一个用葡萄牙语写的网站,我怀疑是否有许多能够阅读和理解这种语言的中国人和访客。


1

您可以使用ngx_http_access_modulenginx 按IP地址进行阻止。要阻止单个IP,您可以在conf文件中添加一行,例如

deny 12.34.567.1;

要阻止范围,请使用CIDR表示法,例如12.34.567.1/24对于包含12.34.567.1 IP地址的24位子网块(具有256个IP地址)。有关更多详细信息,请参阅此页面


1

将.htaccess与

RewriteEngine On
RewriteCond %{HTTP_USER_AGENT} ^.*MJ12bot [NC,OR]
RewriteCond %{HTTP_USER_AGENT} ^.*Baidu [NC]
RewriteRule .*  - [L,F]

“ RewriteEngine On”允许您正确分析以下行。HTTP_USER_AGENT是蜘蛛标识自己的行。如果该行包含“ MJ12bot”或“百度”,则该条件为true。NC表示“不区分大小写”,您可以使用OR链接条件。最后一行不得包含“ OR”,否则规则将不起作用。

百度特别讨厌,因为它试图读取Wordpress条目(“ fckeditor”,“ wp-content”),而这完全没有理由。MJ12bot也是坏小动物之一。

重写规则意味着使用403禁止([F])阻止Spider来访问所有文件(。*是任何文件的正则表达式),并停止进一步评估htaccess([L])。


1
F标志暗含L,因此您无需在L此处明确包含该标志。另外,的模式与^.*Baidusimple相同Baidu
怀特先生(MrWhite)
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.