一些常見的反爬手段及解決思路


常見的反爬手段和解決思路

反反爬的主要思路

反反爬的主要思路就是:盡可能的去模擬瀏覽器,瀏覽器在如何操作,代碼中就如何去實現。瀏覽器先請求了地址url1,保留了cookie在本地,之后請求地址url2,帶上了之前的cookie,代碼中也可以這樣去實現。

很多時候,爬蟲中攜帶的headers字段,cookie字段,url參數,post的參數很多,不清楚哪些有用,哪些沒用的情況下,只能夠去嘗試,因為每個網站都是不相同的。當然在盲目嘗試之前,可以參考別人的思路,我們自己也應該有一套嘗試的流程。

1. 通過headers字段來反爬

1.1 通過headers中的User-Agent字段來反爬

通過User-Agent字段反爬的話,只需要給他在請求之前添加User-Agent即可,更好的方式是使用User-Agent池來解決,我們可以考慮收集一堆User-Agent的方式,或者是隨機生成User-Agen

1.2 通過referer字段或者是其他字段來反爬

通過referer字段來反爬,我們只需要添加上即可

1.3 通過cookie來反爬

  • 如果目標網站不需要登錄 每次請求帶上前一次返回的cookie,比如requests模塊的session

  • 如果目標網站需要登錄 准備多個賬號,通過一個程序獲取賬號對應的cookie,組成cookie池,其他程序使用這些cookie

2.通過js來反爬

2.1 通過js實現跳轉來反爬

在請求目標網站的時候,我們看到的似乎就請求了一個網站,然而實際上在成功請求目標網站之前,中間可能有通過js實現的跳轉,我們肉眼不可見,這個時候可以通過點擊perserve log按鈕實現觀察頁面跳轉情況

在這些請求中,如果請求數量很多,一般來講,只有那些response中帶cookie字段的請求是有用的,意味着通過這個請求,對方服務器有設置cookie到本地

2.2 通過js生成了請求參數

對應的需要分析js,觀察加密的實現過程

可以使用selenium模塊解決

3.3 通過js實現了數據的加密

對應的需要分析js,觀察加密的實現過程,也是使用selenium模塊實現

3. 通過驗證碼來反爬

通過打碼平台或者是機器學習的方法識別驗證碼,其中打碼平台廉價易用,建議使用

4. 通過ip地址來反爬

同一個ip大量請求了對方服務器,有更大的可能性會被識別為爬蟲,對應的通過購買高質量的ip的方式能夠解決

5. 其他的反爬方式

6.1 通過自定義字體來反爬

解決思路:可以嘗試切換到手機版試試

6.2 通過css來反爬

如通過css掩蓋真實數據

解決思路:計算css的偏量

 


免責聲明!

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



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