屏蔽百度蜘蛛或某一爬虫的四种方法

今天打开自己的网站发现很卡,但是检查网站的访问量并不高,登陆服务器发现流量很高,于是查看访问日志,发现网站日志中开头的某一ip段大量频繁访问,来自一个叫Bytespider的爬虫,就在网上查找方法想屏蔽它。其实,类似这样的问题解决方案网上有不少文章,屏蔽某一特定爬虫跟屏蔽百度蜘蛛的原理是一样的,可以通过如下四种方法来处理。

1、robots.txt屏蔽百度或某一爬虫抓取打开robots.txt,在开头加入如下语句(以百度蜘蛛为例):

User-agent: baiduspider

Disallow: /

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

"Mozilla/5.0 (compatible; bingbot/2.0; +http://www.bing.com/bingbot.htm)"

我们就可以知道它的爬虫名称为bingbot。

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

<head> … 

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

</head>

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

<head> … 

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

</head>

3、.htaccess屏蔽百度或某一爬虫抓取

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

RewriteEngine on

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

RewriteRule .* – [F]

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

<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;

    }

  }

}

4、通过IP屏蔽百度或某一爬虫抓取

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

不过此方法没有前面几个方法实用,较少人这样操作。

 

  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值