解決http爬蟲被封為代理ip的七種方法!之前有個(gè)鄰居家的孩子想上學(xué)。因?yàn)闆]考上重點(diǎn),成績(jī)也不算太低,他打算去一個(gè)好點(diǎn)的私立高中。家長(zhǎng)不知道哪所學(xué)校的口碑和往年的成績(jī)會(huì)更好。于是,他找我一個(gè)做數(shù)據(jù)的朋友分析數(shù)據(jù),于是也學(xué)到了一些經(jīng)驗(yàn)。
1.方法。
無論你想收藏什么樣的網(wǎng)站,http代理ip都是必須的,但是需要注意的是一定要用國(guó)內(nèi)的代理ip,可以直接從ip在線代理地址購(gòu)買。但是一定要靠譜。這樣做的優(yōu)點(diǎn)是:
第一,程序邏輯變化小,只需要代理函數(shù)。
第二,可以根據(jù)對(duì)方網(wǎng)站不同的屏蔽規(guī)則購(gòu)買不同的ip代理。
第三,假設(shè)你目前使用的代理ip被對(duì)方網(wǎng)站屏蔽,你可以在不改變程序邏輯的情況下更改IP。
2.方法。
少數(shù)網(wǎng)站防范措施薄弱。你可以偽裝從代理IP服務(wù)提供商那里買的IP,修改X-Forwarded-for,可以繞過。
大部分網(wǎng)站,如果要經(jīng)常抓取,通常需要更多的IP。我的首選方案是直接購(gòu)買飛蟻動(dòng)態(tài)轉(zhuǎn)發(fā)的HTTP代理ip。
3.方法。
ADSL+腳本,監(jiān)控是否被屏蔽,然后連續(xù)切換ip。
設(shè)置查詢頻率限制
正統(tǒng)的方式是調(diào)用這個(gè)網(wǎng)站提供的服務(wù)接口。
4.方法。
1用戶代理偽裝和輪換
2使用代理ip和輪換
3 cookies處理,有些網(wǎng)站對(duì)登錄用戶的政策比較寬松。
友情提示:考慮爬蟲在別人網(wǎng)站的負(fù)擔(dān),做一個(gè)負(fù)責(zé)任的爬蟲??
5.方法。
盡可能模擬用戶行為:
1.用戶代理經(jīng)常改變;
2.設(shè)置較長(zhǎng)的訪問時(shí)間間隔,并將訪問時(shí)間設(shè)置為隨機(jī)數(shù);
3.訪問頁(yè)面的順序也可以是隨機(jī)的。
6.方法。
網(wǎng)站關(guān)閉的依據(jù)一般是單位時(shí)間內(nèi)特定IP的訪問量。
我把收集的任務(wù)按照目標(biāo)站點(diǎn)的IP分組,通過控制每個(gè)IP單位時(shí)間發(fā)送的任務(wù)數(shù)量來避免被阻塞。當(dāng)然這個(gè)前提是你收集了很多網(wǎng)站。如果只收藏一個(gè)網(wǎng)站,只能靠多個(gè)外部IP來實(shí)現(xiàn)。
7.方法。
1.爬行動(dòng)物爬行的壓力控制;
2.考慮使用代理來訪問目標(biāo)站點(diǎn)。
總結(jié):
-減少抓取動(dòng)態(tài)ip地址的替換頻率,設(shè)置時(shí)間更長(zhǎng),訪問時(shí)間使用隨機(jī)數(shù)。
-頻繁切換用戶代理(模擬瀏覽器訪問)
-多頁(yè)數(shù)據(jù),隨機(jī)訪問然后抓取數(shù)據(jù)。
-不斷更換代理IP