#1 楼
在robots.txt中添加#Baiduspider
User-agent: Baiduspider
Disallow: /
#Yandex
User-agent: Yandex
Disallow: /
评论
如果他们不尊重robots.txt怎么办?
– Zhianc
2012年7月9日在4:45
我碰巧知道从我的IP地址进行的“ Baiduspider / 2.0”访问不遵守我网站上的robots.txt。同样,他们经常使用来自同一IP地址块的协调访问(相隔几分钟),而不使用“ Baiduspider”用户代理ID。
– mgkrebbs
2012年7月9日下午5:00
Yandex遵守robots.txt的规定,直到我意识到我们的业务中有很大一部分来自俄罗斯并不得不将其移除后,我才将它们锁定。百度,您必须检查netblock。并非所有的百度宣布的UA实际上都是百度,因此您需要对合法的百度流量进行robots.txt阻止,然后在.htaccess中对剩余的UA字符串进行阻止,然后浪费您的生命进行逐块识别和拒绝剩下的围绕UA字符串块。这与增加服务器流量来完成工作一样多。
–惨败实验室
2012年7月9日在5:12
我有用户代理:*和baiduspider访问将继续进行。
– reinierpost
16年2月16日在17:13
Yandex是针对俄罗斯市场的另一种搜索引擎,因此,当问题根本不问问题时,仅在此处将其包括在内,并且不写任何内容是不负责任的。
–收藏家
16/12/26在6:29
#2 楼
我刚刚成功阻止了中文搜索机器人Baiduspider
访问我网站上的任何内容。我之所以决定这样做,是因为以下原因。决定阻止
的原因
大约每20个对我服务器的请求都是来自一个百度机器人。这是不礼貌的行为。 Baidubot占我网站带宽使用的5%。
我付出了很多努力来保持网站上的资源较小,并利用诸如浏览器缓存之类的技术来取得速度和带宽方面的小胜利。合理的做法是考虑通过阻止Baidubot释放5%的费用。
失去一些中文流量的可能性对企业来说是一个可接受的风险,因为该网站的内容特定于英国,没有中文版本,并且收入来自针对英国市场的广告。
因此,我希望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
最下面的行基本上描述了我知道Baiduspider的4个IP范围,并且只有Baiduspider可以访问我的服务器。 4个范围中的每一个都是256个连续地址(总共1024个)。请注意,如果您尚未阅读CIDR范围,则
deny from...
行上IP范围的语法可能会非常混乱。只需了解0/24
意味着从0开始的256个大小范围,所以180.76.5.0/24
实际上意味着180.76.5.0
和180.76.5.255
之间的每个IP地址。是的,不是特别明显!但是,如果您想了解原因或只是感到困惑,请访问http://www.mediawiki.org/wiki/Help:Range_blocks 摘要
互联网应该是免费,开放和公平的。但这意味着像百度这样的组织会学会遵守Robots.txt,并且对爬网的规律性不那么贪婪。我的解决方案涉及修改非常强大的设置,因此在处理.htaccess文件之前,请确保备份原始文件,如果您因光荣关闭服务器而准备回滚。继续需要您自担风险。
评论
他们的IP地址块可能会更改,因此需要维护时间
– asss
19年8月8日在15:20
#3 楼
您可以在robots.txt
中使用以下指令来禁止对网站进行爬网。# robots.txt
User-agent: Baiduspider
Disallow: /
但是,爬网程序可能决定忽略robots.txt的内容。此外,该文件可以由搜索引擎缓存,并且反映更改之前需要花费时间。
最有效的方法是使用服务器功能。将以下规则添加到
nginx.conf
文件中,以在服务器级别阻止百度。if ($http_user_agent ~* ^Baiduspider) {
return 403;
}
请记住重新启动或重新加载Nginx以便应用更改。
#4 楼
刚刚决定阻止百度,因为它给我们带来的流量对于他们的主动扫描太微不足道了。此外,他们现在还运行一个代理,该代理可以模拟浏览器并启动JavaScript代码(例如Google Analytics(分析))并弄乱我们的统计信息。 />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;
#5 楼
WordPress解决方案(不是最好的,但会有所帮助)与Biadu Spider相同的问题是,我的游戏机在控制台中排名靠前,排名超过35。显然,即使是一台快速的计算机也无法有效地处理外部请求(运行在35 ...)。
我追踪到IP的数量(来自那所大学大楼????)有数百个,主要是两个用户代理。
直接后果?由于我拥有云服务器,因此必须将其升级到更高的内存,以允许下降响应。
上一个答案:
#Baiduspider
User-agent: Baiduspider
Disallow: /
百度似乎完全无法遵守robot.txt的指示我做了什么:
我为Wordpress安装了WP-Ban插件(免费),并禁止了以下内容:
用户代理:
Baiduspider+(+http://www.baidu.com/search/spider.htm)
<进一步,使用Wp Super Cache,我将相对错误页面重定位到静态页面,因此整个wordpress安装不会/或至少仅对禁止的用户代理检查Mysql数据表。(这是标准的Wordpress blablabla,因此每个能够安装Wordpress插件的人都可以这样做,因为此过程不需要编码或ftp访问) br />我同意所有人的观点:互联网是免费的,禁止任何人或任何人绝对是任何人都应该做的最后一件事,但是Baidoo今天要每月给我多付40美元,这只是为了蜘蛛网写成葡萄牙语,怀疑是否有很多中国人和访客能够阅读和理解这种语言。
#6 楼
您可以使用nginx的ngx_http_access_module
按IP地址进行阻止。要阻止单个IP,您可以在conf文件中添加一行,例如deny 12.34.567.1;
要阻止范围,请使用CIDR表示法,如
12.34.567.1/24
表示24位子网(共256个IP地址),其中包括12.34.567.1 IP地址。有关更多详细信息,请参见此页面。#7 楼
将.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])阻止蜘蛛访问所有文件(。*是任何文件的正则表达式文件)并停止对htaccess的进一步评估([L])。
评论
F标志表示L,因此您无需在此处明确包括L标志。此外,类似^。* Baidu的模式与简单的百度相同。
–怀特先生
16 Dec 8'在17:06
评论
我为什么不呢?我不要中国话。我并不是说你不应该,我是在问为什么要打扰。他们在某种程度上伤害您吗?忽略就不容易吗? “不想要中国人来往”在这里并不是一个真正的答案,只是边缘化的仇外心理。阻止一个搜索引擎与阻止中文几乎没有什么不同,因此您甚至没有任何意义。在我看来,您可能一直在寻找基于错误问题的解决方案。但是显然您确实只是想任意阻止蜘蛛,所以我想继续。
@Su',我发现百度蜘蛛在我的网站上极其激进地爬行,导致了合法流量的阻滞。而且,我还发现百度蜘蛛不遵守robots.txt规则。
我每秒从所谓的百度蜘蛛获得1-2次点击。每次匹配都会在我的服务器上生成一个新的会话文件。我有一个用于删除这些会话文件的脚本,但是那些蜘蛛程序也使我的MySQL服务器超载。我绝对想阻止他们。
可以确认baiduspider或冒充baiduspider的东西不道德地爬网并忽略robots.txt指令。