前言
爬蟲和反爬蟲日益成為每家公司的標配系統。
爬蟲在情報獲取、虛假流量、動態定價、惡意攻擊、薅羊毛等方面都能起到很關鍵的作用,所以每家公司都或多或少的需要開發一些爬蟲程序,業界在這方面的成熟的方案也非常多。
有矛就有盾,每家公司也相應的需要反爬蟲系統來達到數據保護、系統穩定性保障、競爭優勢保持的目的。
像安全與黑客從來都是相輔相成一樣。
爬蟲與反爬蟲也是在雙方程序員的斗智斗勇的過程不斷發展和成長的。
抓包
抓包的目的: 分析出協議請求使用的數據,請求接口,參數等等。
常用的抓包分析工具:
- Fiddler
- Charles
- Sniffer
- Wireshark
具體使用策略,請自行百度,Google。
抓數據
使用 HttpClient 模擬請求
充分了解 HttpClient 的特性,使用方式等。
HttpClient4.5官方教程
user_agent 的使用
使用 user_agent 的偽裝和輪換模擬不同的客戶端。
建立UserAgent池,可以通過以下地址獲取一定量的UserAgent的信息。
http://www.fynas.com/ua/search?b=Chromek=
代理IP的使用
建立代理ip池,一般使用的免費或收費代理獲取代理ip每秒都會有一定的頻率限制。
那么我們在使用的時候,就要在頻率限制內建立自己內部的一些策略,
當然這些策略建立在代理服務商的策略之上。因此設計實施時要考慮易維護性。
http代理
有些網站(包括APP、PC)具有一定的反爬蟲能力,
如拒絕代理ip直接請求接口:
這是我使用代理ip請求登錄接口時,某APP的響應:
而使用socks代理則無此問題。這就不得不要了解http代理和socks代理的區別。
socks代理
待續
設置訪問頻率
即便是使用了代理ip,那么對目標接口的訪問也要有一定的頻率控制,
防止目標服務方檢測出頻率過快,進行拒絕服務的響應。
Cookie 池失效和更新策略
獲取目標站點Cookie有效時間,
將對應賬號和Cookie存入Redis,
起一個任務對賬號Cookie進行定時檢測,
接近失效時間,進行提前更新Cookie信息,
具體Cookie 池Cookie的失效和更新策略需要根據自己業務進行適當調整。
防止目標方的分析
- 確保同一賬號的請求使用的是同一個UserAgent、同一個代理ip。
- 注意訪問頻率
- 其他
總而言之,就是模擬正常的客戶端發起對服務方的請求,偽裝的越像正常的客戶端,服務方越難分析出。
只要是服務方能夠提供服務,一般情況下都可以進行數據的爬取,
只不過是難易程度不同。
如果出于商業目的,要考慮付出的成本到底是否合適。
總結
以上就是這篇文章的全部內容了,希望本文的內容對大家的學習或者工作具有一定的參考學習價值,如果有疑問大家可以留言交流,謝謝大家對腳本之家的支持。
您可能感興趣的文章:- Nginx反爬蟲策略,防止UA抓取網站
- 詳解python 破解網站反爬蟲的兩種簡單方法
- Python3爬蟲學習之應對網站反爬蟲機制的方法分析
- python解決網站的反爬蟲策略總結
- python 常見的反爬蟲策略
- Python爬蟲與反爬蟲大戰
- Python反爬蟲偽裝瀏覽器進行爬蟲
- python爬蟲 urllib模塊反爬蟲機制UA詳解
- 淺談Scrapy框架普通反爬蟲機制的應對策略
- 關于反爬蟲的一些簡單總結
- 網站反爬蟲策略