在數(shù)據(jù)采集或者爬蟲的工作中,我們不可避免的會遭遇反爬封鎖,所以就會有爬蟲的攻防,在攻和守之間兩股力量不斷的抗衡。
接下來就講講在數(shù)據(jù)采集或爬蟲時ip被限制的幾種解決方案問題:
解決方案一:
建議一定要使用代理IP;在有外網IP的機器上,部署爬蟲代理服務器;使用輪訓替換代理服務器來訪問想要采集的網站?! ?/span>
這樣的話,你的程序邏輯變化小,只需要代理功能就可以,而且根據(jù)對方網站屏蔽規(guī)則不同,你只需要添加不同的代理就可以了。再者,就算具體IP被屏蔽了,你可以直接把代理服務器下線就OK,程序邏輯不需要變化。
解決方案二:
useragent偽裝和輪換,使用飛速云代理ip和輪換,cookies的處理?! ?/span>
解決方案三:
使用ADSL+腳本,監(jiān)測是否被封,然后不斷切換ip;設置查詢頻率限制,也就是限制調用該網站提供的服務接口。
解決方案四:
網站封IP的依據(jù)一般是單位時間內特定IP的訪問次數(shù)過多,采集很多網站時可以將采集的任務按目標站點的IP進行分組,然后通過控制每個IP在單位時間內發(fā)出任務的個數(shù)來避免被封。
解決方案五:
盡可能的模擬用戶行為,比如UserAgent經常換一換,訪問時間間隔設長一點,訪問時間設置為隨機數(shù);訪問頁面的順序也可以隨機。
解決方案六:
對爬蟲抓取進行壓力控制;可以考慮使用代理的方式訪問目標站點:降低抓取頻率,時間設置長一些,訪問時間采用隨機數(shù);頻繁切換UserAgent(模擬瀏覽器訪問);多頁面數(shù)據(jù),隨機訪問然后抓取數(shù)據(jù);更換用戶IP,這是最直接有效的方法!