主页 > 教程合集 > SEO优化 >

屏蔽百度蜘蛛有几种方法?

时间:2019-09-12 阅读:0

今天去面试一家大型互联网公司的时候,被面试官的一个问题难住了,其实也不是什么很难的问题,但是由于平时用的少,就没有回答的很完美。

屏蔽百度蜘蛛有几种方法?

面试官问:屏蔽百度蜘蛛的方法有几种,我回答说有两种:第一种是使用robots.txt,即蜘蛛协议;第二种就是nofollow。面试官似乎都这个答案不是很满意,后来我又查资料才发现,屏蔽蜘蛛的方式其实是有四种。下面马兔子来将这四种方法一一列出:

方法一:robots.txt屏蔽百度或某一爬虫抓取


打开robots.txt,在开头加入如下语句(以百度蜘蛛为例):


User-agent: baiduspider

Disallow:/

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


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


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


方法二:robots Meta标签屏蔽百度蜘蛛或者某一爬虫抓取


这种方法可以用来设置某一个页面对蜘蛛抓取的屏蔽:


<head> … 

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

</head>

当然了,上面的写法是屏蔽了所有的蜘蛛,如果只是想屏蔽某一个特定的蜘蛛,例如百度蜘蛛,那么可以这样写:


<head> … 

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

</head>


方法三:.htaccess屏蔽百度或某一爬虫抓取(Hypertext Access(超文本入口))


由于一些蜘蛛并不会遵循蜘蛛协议(robots.txt),所以我们需要通过.htaccess来屏蔽它,以百度蜘蛛为例:


RewriteEngine on

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

RewriteRule .* - [F]


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


...

SetEnvIfNoCase User-Agent ^.*Baiduspider.* bad_bot

Order Allow,Deny

Allow from all

Deny from env=bad_bot

...


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


Server{    

...

location/ {

if ($http_user_agent !~ Baiduspider) {

return 403;

            }

        }

...

    }


方法四:通过IP屏蔽百度或某一爬虫抓取

这种方法需要我们通过网站的日志进行分析,筛选出来爬虫的IP地址,然后通过服务器防火墙屏蔽该IP,这样就可以通过IP来准确屏蔽蜘蛛了。但是由于这样需要大量的分析,且搜索引擎蜘蛛的IP也是不可能获取完的,很少有人会用这种方法。

请添加微信后购买资源

马兔子微信二维码

马兔子微信

马兔子
  • 版权声明:原创文章由发表在SEO优化分类下,2019-09-12最后更新,转载注明出处。

相关推荐

上一篇:没有了
返回顶部