運行爬蟲的高級策略是使用ip代理!最近,一位用戶報告說,當使用我們的代理ip服務時,數(shù)據(jù)突然不返回.....我們的IP模擬器代理有問題嗎?
我問他具體錯誤信息是什么,他說就是回不了數(shù)據(jù)。我問了他訪問的具體網(wǎng)站后,用瀏覽器設置代理IP訪問測試是正常的。我告訴他后,他說,但是我的程序沒有返回數(shù)據(jù)。
我告訴他瀏覽器設置代理訪問網(wǎng)站是正常的,說明IP沒有問題,程序代碼無法返回數(shù)據(jù)。可能是目標網(wǎng)站的反爬蟲策略升級了,需要調(diào)整爬蟲策略,比如并發(fā)、訪問頻率、UA等等。他說:政策只能是代理IP。如果代理IP失敗了,再談其他政策也沒用。
這句話對嗎?是真的嗎?我告訴他,策略不只是代理IP,還有其他因素,比如訪問次數(shù),訪問頻率,UA,cookies之類的(不限于此)。而不是使用代理IP,可以高枕無憂,無視目標網(wǎng)站的反抓取策略,肆意抓取,為所欲為。其實不能。代理IP只是一個輔助工具,主要作用是讓爬蟲持續(xù)穩(wěn)定的工作。單個代理IP也要遵守反爬蟲策略,不能頻繁訪問網(wǎng)站。如果觸發(fā)了反爬蟲策略,就會被限制,不會返回數(shù)據(jù)或錯誤數(shù)據(jù)。
有人會說,這樣的代理IP有什么用?的確,單個代理IP用處不大,但是大量代理IP就很有用了。比如目標網(wǎng)站限制一個IP在24小時內(nèi)不能訪問網(wǎng)站超過1000次,最快訪問頻率10秒。那么,代理IP的使用也要遵守目標網(wǎng)站制定的這個規(guī)則。如果訪問頻率超過1000次或少于10秒,代理IP也會受到限制。
我該怎么辦?正確的做法是使用代理IP訪問目標網(wǎng)站999次(理想情況下次數(shù)越少可能越好),切換到下一個代理IP,這樣可以避免IP限制;或者同時使用多個代理IP,這樣一般來說可以實現(xiàn)10秒以內(nèi)的訪問頻率,不受IP限制,在遵循目標網(wǎng)站規(guī)則的同時,不影響爬蟲的工作效率。
當然,代理IP不行,談其他策略也沒用。這后半句是對的。工欲善其事,必先利其器。工具不好,就不能好。所以當出現(xiàn)問題時,首先要確定是代理IP的問題還是政策的問題,然后再解決問題。如果瀏覽器設置代理無法正常訪問網(wǎng)站,很可能是代理IP的問題,需要聯(lián)系服務商幫忙解決。如果瀏覽器設置代理可以正常訪問網(wǎng)站,那么代理IP沒有被限制,很可能是政策問題,需要調(diào)整政策。