反爬機制及反反爬策略


1、UA檢測

UA,即 User-Agent,是HTTP請求頭部信息的一個屬性,它是用戶訪問網站時的瀏覽器標識,可以通過審查元素或者開發者工具中看到。一些網站通過檢測UA從而確定請求的對象是腳本程序還是正常的用戶通過瀏覽器請求,實現反爬蟲的目的。

反反爬策略:構造自己的UA池,使得每次用程序向網站發請求時都隨機帶上正常的UA標識,更好的模擬瀏覽器行為。有些網站還會有反爬時間或者頻率的限制,因此,最好可以再設置一個 timeout ,最好是隨機休眠,Python中可以使用 time.sleep() 進行設置。

 

 2、IP限制

一些網站會根據你請求的IP地址的頻率和次數來進行反爬。如果你同樣的IP地址在短時間內對一個網站頻繁的進行訪問,那么服務器有可能在一段時間內會禁止這個IP地址進行訪問。

反反爬策略:構造自己的IP代理池,然后每次發起請求時都從池中隨機選擇一個IP地址。比如:可以去西刺代理尋找一些IP地址構造代理池。

3、驗證碼反爬

這個是一種非常有效的反爬機制,現在的驗證碼也變得越來越復雜,各種花樣很多,想寫個腳本去識別驗證碼那還真不是一件簡單的事情。

反反爬策略:這個能怎么樣呢,簡單的驗證碼可以通過雲打碼這個平台上提供的接口進行編碼識別,試了一下,還不錯,收費也不貴,但是一些比較復雜的驗證碼就不知道怎么樣了,實在不行,還是用手輸入吧

4、Ajax動態加載

有些網頁直接用它的URL抓取不到數據,這時候,就很有可能是Ajax動態加載的了。它的原理是利用網頁的URL加載網頁的源代碼之后,會先在瀏覽器中執行JavaScript程序,這些程序會加載除更多的內容,並把加載出的內容傳輸到網頁中。

反反爬策略:利用審查元素或者開發者工具查看網頁數據的XHR類型的URL,並向這個XHR類型的URL發起請求就可以拿到對應的數據了。

5、cookie限制

cookie是服務器在用戶瀏覽器設置的請求頭部信息,當瀏覽器發起請求時,如果存在cookie,就一定會攜帶。服務器會檢測cookie是否是之前設置的cookie實現反爬。

反反爬策略:在請求頭部信息中帶上相應的cookie信息,利用Python的requests模塊發請求時,可以使用requests.session自動處理cookie。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM