屏蔽百度蜘蛛或某一爬蟲的四種方法


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段。

不過此方法沒有前面幾個方法實用,較少人這樣操作。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM