使用Nginx過濾網絡爬蟲

如今的網絡爬蟲愈來愈多,有不少爬蟲都是初學者寫的,和搜索引擎的爬蟲不同,他們不懂如何控制速度,結果每每大量消耗服務器資源,致使帶寬白白浪費了。java

其實Nginx能夠很是容易地根據User-Agent過濾請求,咱們只須要在須要URL入口位置經過一個簡單的正則表達式就能夠過濾不符合要求的爬蟲請求:python

...
    location / {
        if ($http_user_agent ~* "python|curl|java|wget|httpclient|okhttp") {
            return 503;
        }
        # 正常處理
        ...
    }
    ...

變量$http_user_agent是一個能夠直接在location中引用的Nginx變量。~*表示不區分大小寫的正則匹配,經過python就能夠過濾掉80%的Python爬蟲。wget也不能get到數據:正則表達式

相關文章
相關標籤/搜索