我的大部分访问都是来自百度蜘蛛。我认为它根本不会帮助搜索引擎,因此我正在考虑如何阻止它们。可以通过iptables完成吗?我正在使用nginx作为我的网络服务器。
robots.txt
规则。
我的大部分访问都是来自百度蜘蛛。我认为它根本不会帮助搜索引擎,因此我正在考虑如何阻止它们。可以通过iptables完成吗?我正在使用nginx作为我的网络服务器。
robots.txt
规则。
Answers:
在您的robots.txt中添加
#Baiduspider
User-agent: Baiduspider
Disallow: /
#Yandex
User-agent: Yandex
Disallow: /
User-agent: *
和baiduspider访问继续进行。
我刚刚成功阻止了中国搜索机器人Baiduspider
访问我网站上的任何内容。由于以下原因,我决定这样做。
决定封锁的原因
因此,我希望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文件之前,请务必备份原始文件,以备不时之需。继续需要您自担风险。
您可以在其中使用以下指令robots.txt
来禁止爬网。
# robots.txt
User-agent: Baiduspider
Disallow: /
但是,抓取工具可能会决定忽略robots.txt的内容。此外,该文件可以由搜索引擎缓存,并且反映更改需要花费时间。
最有效的方法是使用服务器功能。将以下规则添加到nginx.conf
文件中,以在服务器级别阻止百度。
if ($http_user_agent ~* ^Baiduspider) {
return 403;
}
请记住重新启动或重新加载Nginx以便应用更改。
刚刚决定阻止百度,因为它给我们带来的流量对于他们的主动扫描太微不足道了。此外,他们现在还运行一个代理,该代理可以模拟浏览器并启动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;
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美元,这只是为了爬一个用葡萄牙语写的网站,我怀疑是否有许多能够阅读和理解这种语言的中国人和访客。
将.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])。
F
标志暗含L
,因此您无需在L
此处明确包含该标志。另外,的模式与^.*Baidu
simple相同Baidu
。