如何評價可以自動更換 User-Agent 的爬蟲設計?

來源:互聯網
上載者:User
我寫了個爬蟲爬了一個網站一堆資料,自動換UA的,感覺很贊

不過很怕被目標網站給封了,
各位大神給些更好的策略吧~

回複內容:

爬蟲自動換User-Agent在代碼實現上只需要一句就夠了,並不是什麼高難度的技術活。爬蟲為什麼要換不同的User-Agent呢,無非就是為了類比瀏覽器,讓伺服器不容易識別出自己是爬蟲。

對於爬蟲,其實上上策是耙梳站之前先去讀一下網站的『robots.txt』檔案,看看網站開發人員(或網站主人)允許你爬什麼不允許你爬什麼,然後按照主人的意願,別做出格的事情。這著實是一種情懷。

當然,其實大部分情況下我們還是希望可以不論網站主人答不答應都爬下我們需要的內容,這就需要用到一些反反爬蟲的機制了。題主提到的換U-A其實就是一種方法,當然僅僅換U-A對於大部分有反爬蟲機制的網站是不夠的。


以下是幾種 簡單常見的反爬蟲機制和解決辦法。

最簡單的自然就是什麼也不做,這樣的網站爬起來就非常簡單了,不贅述。

稍微攔一下的,可能就會校正下User-Agent了,U-A的作用就是標識你是什麼瀏覽器/Client等等。一般程式設計語言內建的網路程式庫或者第三方網路程式庫,會將U-A設定成自己的標識,對於這樣的情況網站開發人員就能夠很容易攔截了。於是就有了題主所說的換U-A,其實就是將庫預設的U-A替換為常用瀏覽器的U-A,以達到幹擾伺服器識別的作用。

再複雜一點的,可能就不只是通過瀏覽器標識來識別了,訪問者的IP也是標識之一。這樣的反爬蟲機制有一個問題就是,如果從同一個IP出去的真實請求很多,比較容易誤判為爬蟲。一般伺服器會根據IP+Cookie來識別每個使用者。要爬取這樣的網站,一個比較簡單且有效方案是換代理。很多網站提供免費代理,抓下它們,然後在發請求通過代理(最好是高匿代理),就可以搞定大部分網站了。值得注意的是代理的有效時間一般比較短,所以爬代理之後應該有一個有效機制校正已有代理的有效性。

更複雜的網站,就可能會通過帳號來限制了。這樣的網站一般在註冊帳號登入之前並不能完整瀏覽需要的資訊,必須要註冊並登入後才能看到。這樣的網站就需要註冊一批帳號了,在一個帳號不可用之後更換新的帳號。可以寫一個指令碼來大量註冊帳號。當然註冊的時候一般會伴隨驗證碼,對於簡單的驗證碼可以Google以下OCR找找資料,複雜的驗證碼就手輸或者購買人肉打碼服務吧。

更加複雜的,就是一些社交網站了。社交網站大多非常封閉,拿新浪微博為例,微博在登入時需要提交很多參數,登入後請求的頁面也不是最終的源碼,還需要自己解析一遍。對於有大量js渲染的網頁,一般複雜但是容易(是的,這兩個詞不矛盾)的,可以自己解析,複雜但是不容易的就通過一些庫去做吧(比如Python的selenium等)。

........

中間還有很多就不總結了,最後講一種情況。大概這屬於爬蟲界的無解難題了,就是請求所有的資源都需要 付費。是的,這類網站你需要在你的賬戶裡儲值,然後每次請求都是付費的,他們才不關心你是機器還是人,反正收費嘛。



大概就是這樣,時間比較緊,總結中很多漏洞,請見諒。。。換了UA有啥用。。又不是識別不出你來。。就好像你在超市領贈品,每人只能領一次,你換個衣服再去。。。人家不但認得出來,還覺得你滑稽感覺LZ這個防反爬策略太low...
這種防反爬的策略我還沒畢業就用了,對一些大的網站根本沒用,沒幾分鐘就被抓出來禁了。
頻繁換IP興許還有點用,畢竟一般的大站不會封一大段,排除一些瘋了的會封整個A段或者整個B段導致整個一片都沒有資料。
還有你拿下來的資料可能是XX寬頻緩衝的,你看下以前有個提問,是調過最難調的BUG,裡面就是這樣的,XX寬頻會緩衝目標網站URL的動態資料,蛋疼得不得了,所以你拿的資料有可能一點用處都沒有,早就到期了。
你最好再想想別的,從其他角度欺騙一下伺服器,沒事多看看別人的東西怎麼爬的。
你這樣隨便一個人都能寫的,github上很多的,自己去搜搜看。至少換個 ip 吧。。。自動換user-agent不是標配麼。。。。今天發現一個爬蟲不停變著 UA 在爬我們,然後我把它 IP 封了,感覺很贊就憑你問這個問題,換ip、換電腦、搞高仿類比,等等等等都沒用的。用代理IP要比這個策略好你以為換個馬甲伺服器就不認識你了換UA 無聊 又 2B
  • 聯繫我們

    該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

    如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

    A Free Trial That Lets You Build Big!

    Start building with 50+ products and up to 12 months usage for Elastic Compute Service

    • Sales Support

      1 on 1 presale consultation

    • After-Sales Support

      24/7 Technical Support 6 Free Tickets per Quarter Faster Response

    • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.