咱們都知道網絡上的爬蟲很是多,有對網站收錄有益的,好比百度蜘蛛(Baiduspider),也有不但不遵照robots 規則對服務器形成壓力,還不能爲網站帶來流量的無用爬蟲,好比宜搜蜘蛛(YisouSpider)(最新補充:宜搜蜘蛛已被UC神馬搜索收購!因此本文已去掉宜搜蜘蛛的禁封! ==> 相關文章 )。最近張戈發現nginx日誌中出現了好多宜搜等垃圾的抓取記錄,因而整理收集了網絡上各類禁止垃圾蜘蛛爬站的方法,在給本身網作設置的同時,也給各位站長提供參考。php
修改網站目錄下的.htaccess,添加以下代碼便可(2 種代碼任選):html
RewriteEngine On RewriteCond %{HTTP_USER_AGENT} (^$|FeedDemon|Indy Library|Alexa Toolbar|AskTbFXTV|AhrefsBot|CrawlDaddy|CoolpadWebkit|Java|Feedly|UniversalFeedParser|ApacheBench|Microsoft URL Control|Swiftbot|ZmEu|oBot|jaunty|Python-urllib|lightDeckReports Bot|YYSpider|DigExt|HttpClient|MJ12bot|heritrix|EasouSpider|Ezooms) [NC] RewriteRule ^(.*)$ - [F]
SetEnvIfNoCase ^User-Agent$ .*(FeedDemon|Indy Library|Alexa Toolbar|AskTbFXTV|AhrefsBot|CrawlDaddy|CoolpadWebkit|Java|Feedly|UniversalFeedParser|ApacheBench|Microsoft URL Control|Swiftbot|ZmEu|oBot|jaunty|Python-urllib|lightDeckReports Bot|YYSpider|DigExt|HttpClient|MJ12bot|heritrix|EasouSpider|Ezooms) BADBOT Order Allow,Deny Allow from all Deny from env=BADBOT
找到以下相似位置,根據如下代碼新增/ 修改,而後重啓Apache 便可:nginx
進入到nginx 安裝目錄下的conf 目錄,將以下代碼保存爲 agent_deny.confsql
cd /usr/local/nginx/confvim
vim agent_deny.conf數組
而後,在網站相關配置中的 location / { 以後插入以下代碼:服務器
保存後,執行以下命令,平滑重啓nginx 便可:curl
將以下方法放到貼到網站入口文件index.php 中的第一個<?php 以後便可:tcp
若是是vps,那很是簡單,使用curl -A 模擬抓取便可,好比:
模擬宜搜蜘蛛抓取:
模擬百度蜘蛛的抓取:
三次抓取結果截圖以下:
能夠看出,宜搜蜘蛛和UA 爲空的返回是403 禁止訪問標識,而百度蜘蛛則成功返回200,說明生效!
①、UA 信息爲空的垃圾採集被攔截:
②、被禁止的UA 被攔截:
所以,對於垃圾蜘蛛的收集,咱們能夠經過分析網站的訪問日誌,找出一些沒見過的的蜘蛛(spider)名稱,通過查詢無誤以後,能夠將其加入到前文代碼的禁止列表當中,起到禁止抓取的做用。
下面是網絡上常見的垃圾UA 列表,僅供參考,同時也歡迎你來補充。