Nginx反爬蟲攻略:禁止某些User Agent抓取網站
阿新 • • 發佈:2019-01-31
我們都知道網路上的爬蟲非常多,有對網站收錄有益的,比如百度蜘蛛(Baiduspider),也有不但不遵守robots規則對伺服器造成壓力,還不能為網站帶來流量的無用爬蟲,比如宜搜蜘蛛(YisouSpider)(最新補充:宜搜蜘蛛已被UC神馬搜尋收購!所以本文已去掉宜搜蜘蛛的禁封!==>相關文章)。最近發現nginx日誌中出現了好多宜搜等垃圾的抓取記錄,於是整理收集了網路上各種禁止垃圾蜘蛛爬站的方法,在給自己網做設定的同時,也給各位站長提供參考。
參考: http://zhangge.net/4458.html
進入到nginx安裝目錄下的conf目錄,將如下程式碼儲存為 agent_deny.conf
# cd /usr/local/nginx/conf
# vi agent_deny.conf
#禁止Scrapy等工具的抓取 if ($http_user_agent ~* (Scrapy|Curl|HttpClient)) { return 403; } #禁止指定UA及UA為空的訪問 if ($http_user_agent ~ "WinHttp|WebZIP|FetchURL|node-superagent|java/|FeedDemon|Jullo|JikeSpider|Indy Library|Alexa Toolbar|AskTbFXTV|AhrefsBot|CrawlDaddy|Java|Feedly|Apache-HttpAsyncClient|UniversalFeedParser|ApacheBench|Microsoft URL Control|Swiftbot|ZmEu|oBot|jaunty|Python-urllib|lightDeckReports Bot|YYSpider|DigExt|HttpClient|MJ12bot|heritrix|EasouSpider|Ezooms|BOT/0.1|YandexBot|FlightDeckReports|Linguee Bot|^$" ) { return 403; } #禁止非GET|HEAD|POST方式的抓取 if ($request_method !~ ^(GET|HEAD|POST)$) { return 403; }
然後,在網站相關配置中的 server段插入如下程式碼:
include agent_deny.conf;
儲存後,執行如下命令,平滑重啟nginx即可:
/usr/local/nginx/sbin/nginx -s reload
測試
使用curl -A 模擬抓取即可,比如:
curl-I-A'YYSpider'www.test.com
模擬UA為空的抓取:
curl-I-A'
'www.test.com
模擬百度蜘蛛的抓取:
curl -I -A 'Baiduspider' www.test.com附錄:UA收集
FeedDemon 內容採集 BOT/0.1 (BOT for JCE) sql注入 CrawlDaddy sql注入 Java 內容採集 Jullo 內容採集 Feedly 內容採集 UniversalFeedParser 內容採集 ApacheBench cc攻擊器 Swiftbot 無用爬蟲 YandexBot 無用爬蟲 AhrefsBot 無用爬蟲 YisouSpider 無用爬蟲(已被UC神馬搜尋收購,此蜘蛛可以放開!) jikeSpider 無用爬蟲 MJ12bot 無用爬蟲 ZmEu phpmyadmin 漏洞掃描 WinHttp 採集cc攻擊 EasouSpider 無用爬蟲 HttpClient tcp攻擊 Microsoft URL Control 掃描 YYSpider 無用爬蟲 jaunty wordpress爆破掃描器 oBot 無用爬蟲 Python-urllib 內容採集 Indy Library 掃描 FlightDeckReports Bot 無用爬蟲 Linguee Bot 無用爬蟲
參考: http://zhangge.net/4458.html