采集數據必須有爬蟲IP代理!由于之前公司項目的需要,我們收集了地圖數據和一些大型網站數據。
經驗如下:
1.必須要代理IP,非常正確,ADSL。有條件的話,其實可以跟機房申請外部IP。
2.在具有外部IP的機器上部署代理服務器。
3.你的程序,用輪訓代替代理服務器訪問你要收藏的網站。
好處:
1.程序邏輯變化小,只需要代理函數。
2.根據對方網站不同的屏蔽規則,你只需要多加幾個代理就可以了。
3.如果特定IP被屏蔽,使用代理服務器注銷是可以的,不需要改變程序邏輯。
一開始想通過proxy買一些代理IP,比如免費的Elf http proxy,它提供了很多國內的代理IP服務器地址,可以從這里搶http代理。后來用了ADSL。缺點是斷網再撥。在斷開過程中,爬蟲空載運行。如果對實時數據有特殊要求,需要做好方案規劃。
ADSL的另一個缺點是服務器廠商好像都是小作坊,不穩定。找一個長期穩定的伴侶也很重要。平均每2秒訪問一次,也就是被屏蔽的代理服務器的IP地址。所以要減緩爬行速度,但受限于總量和時間。這里有個問題:如果我平均訪問2秒多一點,我就永遠不會被屏蔽了嗎?你知道對方網站所有的屏蔽策略嗎?
根據現有條件,假設阻塞條件一定,每秒30分鐘10000頁的平均量是5.56次。如果沒有排班,用戶可以設置至少6行來完成抓拍(更正一下,應該是至少12行,比較著急,算錯了。
最終的解決方案是拉幾條電信ADSL線代理IP。光纖和電話線都可以。撥號可以用CMD。用了1000多年,10M光纖,4M電話線。自己買幾臺機器放著就行了。