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