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