屏蔽百度蜘蛛爬蟲或其他搜索引擎爬蟲的四種方法
某些惡意的搜索引擎爬蟲一天內(nèi)可能會(huì)訪問(wèn)網(wǎng)站幾千次,會(huì)消耗不少服務(wù)器資源,其實(shí)我們可以通過(guò)技術(shù)手段來(lái)屏蔽它,具體可以通過(guò)如下四種方法來(lái)處理
robots.txt屏蔽百度或某一爬蟲抓取
打開robots.txt,在開頭加入如下語(yǔ)句(以百度蜘蛛為例):
User-agent: baiduspider Disallow: /
代碼分析,首先要知道該爬蟲的名稱,如百度爬蟲是Baiduspider,Google爬蟲是Googlebot,360搜索爬蟲是360Spider,你可以通過(guò)各大搜索引擎蜘蛛爬蟲UA匯總來(lái)獲取爬蟲的名稱,例如,微軟必應(yīng)的蜘蛛U(xiǎn)A是:
"Mozilla/5.0 (compatible; bingbot/2.0; +http://www.bing.com/bingbot.htm)"
我們就可以知道它的爬蟲名稱為bingbot。
robots Meta標(biāo)簽屏蔽百度或某一爬蟲抓取
如果是針對(duì)某一個(gè)頁(yè)面屏蔽百度蜘蛛或某一爬蟲抓取,那么可以通過(guò)Meta標(biāo)簽來(lái)實(shí)現(xiàn)。代碼如下:
<head> <meta name="robots" content="noindex,nofollow" /> </head>
這是屏蔽所有蜘蛛爬蟲抓取該頁(yè)面的寫法,如果只屏蔽某個(gè)爬蟲,可以把"robots"改為特定的爬蟲名稱,爬蟲名稱可以通過(guò)上面方法1中提及的辦法獲得。例如想只屏蔽微軟必應(yīng)的蜘蛛抓取該頁(yè),則可以寫成:
<head> <meta name="bingbot" content="noindex,nofollow" /> </head>
.htaccess屏蔽百度或某一爬蟲抓取
一些可惡的爬蟲并不遵循robots規(guī)則,那么我們還可以通過(guò).htaccess來(lái)屏蔽它,代碼如下(以百度蜘蛛為例):
RewriteEngine on RewriteCond %{HTTP_USER_AGENT} ^.*Baiduspider.* [NC] RewriteRule .* - [F]
如果是Apache服務(wù)器,可以修改配置文件 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服務(wù)器,可以修改配置文件( 默認(rèn)是 nginx.conf ),這樣寫:
Server{ location / { if ($http_user_agent !~ Baiduspider) { return 403; } } }
通過(guò)IP屏蔽百度或某一爬蟲抓取
我們還可以通過(guò)分析日志,獲得爬蟲的IP地址,然后從服務(wù)器防火墻屏蔽該IP,不過(guò)爬蟲通常有很多IP,我們可以屏蔽爬蟲的IP段。
您可能感興趣的內(nèi)容