有效的屏蔽百度蜘蛛或某一爬虫的几种方法

  • A+
所属分类:SEO教程

很多站长朋友们估计也都遇到过这样的问题:蜘蛛访问压力非常的大,而且有很多国外的搜索引擎爬虫来抓取网页,还有一些冒充百度蜘蛛、谷歌蜘蛛的天天来抓取,假蜘蛛太多,会造成服务器压力大,而且还会影响其他蜘蛛更好的抓取网站,那么我们就需要屏蔽某一蜘蛛或者IP来抓取网页,以下有几种方法都可以实现。

有效的屏蔽百度蜘蛛或某一爬虫的几种方法

 

Robots.txt屏蔽

robots协议是一个放在网站根目录下协议文件,可以通过URL地址:你的域名/robots.txt进行访问。当百度蜘蛛抓取我们网站时,会先访问这个文件。因为里面告诉了蜘蛛哪些可以抓取,哪些不可以抓取。以谷歌蜘蛛为例:

User-agent: Googlebot

Disallow: /

代码分析,首先要知道该爬虫的名称,如百度爬虫是Baiduspider,Google爬虫是Googlebot,360搜索爬虫是360Spider,你可以通过各大搜索引擎蜘蛛爬虫UA汇总来获取爬虫的名称

Meta标签屏蔽

如果是针对某一个页面屏蔽百度蜘蛛或某一爬虫抓取,那么可以通过Meta标签来实现。代码如下:

<head> …
<meta name="robots" content="noindex,nofollow" />
</head>

这是屏蔽所有蜘蛛爬虫抓取该页面的写法,如果只屏蔽某个爬虫,可以把"robots"改为特定的爬虫名称,爬虫名称可以通过上面方法1中提及的办法获得。例如想只屏蔽微软必应的蜘蛛抓取该页,则可以写成:

<head> …

<meta name="bingbot" content="noindex,nofollow" />

</head>

.htaccess屏蔽

一些可恶的爬虫并不遵循robots规则,那么我们还可以通过.htaccess来屏蔽它,代码如下(以百度蜘蛛为例):

RewriteEngine on

RewriteCond %{HTTP_USER_AGENT} ^.*Baiduspider.* [NC]

RewriteRule .* - [F]

如果是Apache服务器,可以修改配置文件 httpd.conf ,这样写( ar/wwwml 是根目录):

<Directory "/var/www/html">

...

SetEnvIfNoCase User-Agent ^.*Baiduspider.* bad_bot

Order Allow,Deny

Allow from all

Deny from env=bad_bot

...

</Directory>

如果是Nginx服务器,可以修改配置文件( 默认是nginx.conf ),这样写:

Server{

...

location / {

if ($http_user_agent !~ Baiduspider) {

return 403;

}

}

...

}

通过IP屏蔽

我们还可以通过分析日志,获得爬虫的IP地址,然后从服务器防火墙屏蔽该IP,不过爬虫通常有很多IP,我们可以屏蔽爬虫的IP段。

eyuzhuji
小九

发表评论

:?: :razz: :sad: :evil: :!: :smile: :oops: :grin: :eek: :shock: :???: :cool: :lol: :mad: :twisted: :roll: :wink: :idea: :arrow: :neutral: :cry: :mrgreen: