關(guān)于爬蟲和反爬蟲的簡(jiǎn)略方案分享
前言
爬蟲和反爬蟲日益成為每家公司的標(biāo)配系統(tǒng)。
爬蟲在情報(bào)獲取、虛假流量、動(dòng)態(tài)定價(jià)、惡意攻擊、薅羊毛等方面都能起到很關(guān)鍵的作用,所以每家公司都或多或少的需要開發(fā)一些爬蟲程序,業(yè)界在這方面的成熟的方案也非常多。
有矛就有盾,每家公司也相應(yīng)的需要反爬蟲系統(tǒng)來達(dá)到數(shù)據(jù)保護(hù)、系統(tǒng)穩(wěn)定性保障、競(jìng)爭(zhēng)優(yōu)勢(shì)保持的目的。
像安全與黑客從來都是相輔相成一樣。
爬蟲與反爬蟲也是在雙方程序員的斗智斗勇的過程不斷發(fā)展和成長(zhǎng)的。
抓包
抓包的目的: 分析出協(xié)議請(qǐng)求使用的數(shù)據(jù),請(qǐng)求接口,參數(shù)等等。
常用的抓包分析工具:
- Fiddler
- Charles
- Sniffer
- Wireshark
具體使用策略,請(qǐng)自行百度,Google。
抓數(shù)據(jù)
使用 HttpClient 模擬請(qǐng)求
充分了解 HttpClient 的特性,使用方式等。
user_agent 的使用
使用 user_agent 的偽裝和輪換模擬不同的客戶端。
建立UserAgent池,可以通過以下地址獲取一定量的UserAgent的信息。
http://www.fynas.com/ua/search?b=Chrome&k=
代理IP的使用
建立代理ip池,一般使用的免費(fèi)或收費(fèi)代理獲取代理ip每秒都會(huì)有一定的頻率限制。
那么我們?cè)谑褂玫臅r(shí)候,就要在頻率限制內(nèi)建立自己內(nèi)部的一些策略,
當(dāng)然這些策略建立在代理服務(wù)商的策略之上。因此設(shè)計(jì)實(shí)施時(shí)要考慮易維護(hù)性。
http代理
有些網(wǎng)站(包括APP、PC)具有一定的反爬蟲能力,
如拒絕代理ip直接請(qǐng)求接口:
這是我使用代理ip請(qǐng)求登錄接口時(shí),某APP的響應(yīng):
CONNECT refused by proxy
而使用socks代理則無此問題。這就不得不要了解http代理和socks代理的區(qū)別。
socks代理
待續(xù)
設(shè)置訪問頻率
即便是使用了代理ip,那么對(duì)目標(biāo)接口的訪問也要有一定的頻率控制,
防止目標(biāo)服務(wù)方檢測(cè)出頻率過快,進(jìn)行拒絕服務(wù)的響應(yīng)。
Cookie 池失效和更新策略
獲取目標(biāo)站點(diǎn)Cookie有效時(shí)間,
將對(duì)應(yīng)賬號(hào)和Cookie存入Redis,
起一個(gè)任務(wù)對(duì)賬號(hào)Cookie進(jìn)行定時(shí)檢測(cè),
接近失效時(shí)間,進(jìn)行提前更新Cookie信息,
具體Cookie 池Cookie的失效和更新策略需要根據(jù)自己業(yè)務(wù)進(jìn)行適當(dāng)調(diào)整。
防止目標(biāo)方的分析
- 確保同一賬號(hào)的請(qǐng)求使用的是同一個(gè)UserAgent、同一個(gè)代理ip。
- 注意訪問頻率
- 其他
總而言之,就是模擬正常的客戶端發(fā)起對(duì)服務(wù)方的請(qǐng)求,偽裝的越像正常的客戶端,服務(wù)方越難分析出。
只要是服務(wù)方能夠提供服務(wù),一般情況下都可以進(jìn)行數(shù)據(jù)的爬取,
只不過是難易程度不同。
如果出于商業(yè)目的,要考慮付出的成本到底是否合適。
總結(jié)
以上就是這篇文章的全部?jī)?nèi)容了,希望本文的內(nèi)容對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,如果有疑問大家可以留言交流,謝謝大家對(duì)腳本之家的支持。
- Nginx反爬蟲策略,防止UA抓取網(wǎng)站
- 詳解python 破解網(wǎng)站反爬蟲的兩種簡(jiǎn)單方法
- Python3爬蟲學(xué)習(xí)之應(yīng)對(duì)網(wǎng)站反爬蟲機(jī)制的方法分析
- python解決網(wǎng)站的反爬蟲策略總結(jié)
- python 常見的反爬蟲策略
- Python爬蟲與反爬蟲大戰(zhàn)
- Python反爬蟲偽裝瀏覽器進(jìn)行爬蟲
- python爬蟲 urllib模塊反爬蟲機(jī)制UA詳解
- 淺談Scrapy框架普通反爬蟲機(jī)制的應(yīng)對(duì)策略
- 關(guān)于反爬蟲的一些簡(jiǎn)單總結(jié)
- 網(wǎng)站反爬蟲策略
相關(guān)文章
全網(wǎng)最強(qiáng)下載神器IDM使用教程之利用IDM加速下載百度網(wǎng)盤大文件的方法
自從不限速度盤下載工具Pandownload被封殺后,有些網(wǎng)友紛紛表示:幸好我們還有IDM,但是很多朋友對(duì)IDM不是多了解,下面小編給大家介紹下下載神器IDM使用教程之利用IDM加速下載百度網(wǎng)盤大文件的方法,感興趣的朋友跟隨小編一起看看吧2023-01-01github pull最新代碼實(shí)現(xiàn)方法
本文主要介紹 github pull最新代碼的資料,這里對(duì) github pull最新代碼做了詳細(xì)流程介紹,有需要的小伙伴可以參考下2016-09-09百度HI QQ和MSN 阿里旺旺貿(mào)易通MSN在線客服在線聊天代碼
有時(shí)候業(yè)務(wù)需要,需要讓客戶更方便的與我們溝通,就可以參考下面的代碼。2010-04-04解決使用IDE Run運(yùn)行出錯(cuò)package pack/test is not in GOROOT (/usr/loca
這篇文章主要介紹了解決使用IDE Run運(yùn)行出錯(cuò)package pack/test is not in GOROOT (/usr/local/go/src/pack/test),本文給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2020-11-11git?push?origin?HEAD:refs/for/master?的意思分析
這篇文章主要介紹了git?push?origin?HEAD:refs/for/master?的意思,補(bǔ)充介紹了git?提交代碼常用命令,本文給大家介紹的非常詳細(xì),需要的朋友可以參考下2023-01-01