Ubuntu 14.04服务器Apache禁止某些User Agent抓取网站

最近网站上,被某些爬虫占用了太大的资源,导致访问不畅,网上搜了一下禁止某些爬虫的办法。

下面这些方法需要同时实施才足够稳妥。

1.在网站根目录下修改或创建.htaccess文件

<IfModule mod_rewrite.c>
 RewriteEngine On
 RewriteCond %{HTTP_USER_AGENT} ^YisouSpider* [NC]
 RewriteRule ^(.*)$ - [F,L]
</IfModule>

注意,这个过滤条件需要添加到整个.htaccess文件的头部,否则可能由于其他的过滤条件而跳过了这个过滤条件,导致某些情况下不生效。

2.修改Apache2的配置文件

$ vim /etc/apache2/sites-available/000-default.conf

禁止某些User-Agent的访问

<Directory "/var/www/wordpress">
 SetEnvIfNoCase User-Agent ".*(YisouSpider)" denySpider
 Order allow,deny
 Allow from all
 deny from env=denySpider
</Directory>

注意:

env=denySpider

中间不可用空格,否则无法成功生效。

3.网站根目录下面增加robot.txt,禁止爬虫

#一搜的爬虫访问过于频繁
User-agent:YisouSpider
Disallow:/

4.对于使用ProxyPass,ProxyPassReverse代理转发的情况

使用如下配置进行过滤

<Proxy "*">
 SetEnvIfNoCase User-Agent ".*(YisouSpider)" denySpider
 Order Allow,Deny
 Allow from all
 Deny from env=denySpider
</Proxy>

注意:

env=denySpider

中间不可用空格,否则无法成功生效。

5.验证刚刚的服务器设置是否已生效

刚刚的设置完成后,我们需要修改浏览器的User Agent,来验证一下我们的设置是否已经生效了。
Chrome-55.0为例,Windows下面按下F12,在弹出的窗口中进行如下操作:

参考链接


服务器反爬虫攻略:Apache/Nginx/PHP禁止某些User Agent抓取网站

发布者

发表回复

您的电子邮箱地址不会被公开。 必填项已用 * 标注