您好,登錄后才能下訂單哦!
這篇文章主要介紹了Python爬蟲中代理ip異常和超時怎么辦,具有一定借鑒價值,感興趣的朋友可以參考下,希望大家閱讀完這篇文章之后大有收獲,下面讓小編帶著大家一起了解一下。
一、反爬蟲機制:這里就不詳細(xì)的介紹了
相信大多數(shù)的爬蟲工作者都比較了解,這里就不詳細(xì)的介紹了
二、超時設(shè)置:selenium+chrome的超時設(shè)置
穩(wěn)定網(wǎng)絡(luò)不會像平常那樣穩(wěn)定,原因可能是代理IP在某個時期不能保持通常那樣的穩(wěn)定性,但也有可能是由于對方的原因,對方的服務(wù)器不穩(wěn)定,還有自己的機器的網(wǎng)絡(luò)也可能不穩(wěn)定,如果沒有設(shè)置好超時,程序也不好跑下去。
selenium+chrome的超時設(shè)置:
顯示等待:等待某一條件發(fā)生,然后繼續(xù)編碼。
driver=webdriver.Firefox()
driver.get(“http://somedomain/url_that_delays_loading”)
try:
element=WebDriverWait(driver,10).until(#這里修改時間
EC.presence_of_element_located((By.ID,“myDynamicElement”))
)
finally:
driver.quit()
隱式等待:告訴WebDriver,當(dāng)他們試圖找到一個或多個元素(如果他們不能立即使用)時,他們會輪流詢問DOM。默認(rèn)設(shè)置為0。一旦設(shè)置,將為藏等待WebDriver對象實例的生命周期。
driver=webdriver.Firefox()
driver.implicitly_wait(10)#seconds
driver.get(“http://somedomain/url_that_delays_loading”)
myDynamicElement=driver.find_element_by_id(“myDynamicElement”)
三、異常處理:python通常使用try&except語句處理異常
在程序中經(jīng)常發(fā)生一種情況,python通常使用try&except語句處理異常,而try&except語句的作用就是捕捉異常,當(dāng)然還有更重要的用途,即可以忽略異常。由于爬蟲中絕大多數(shù)的異常都不能被重新請求,所以,在發(fā)現(xiàn)異常時,修復(fù)它的任務(wù)隊列實際上是一個最省力的方法。
四、自重啟設(shè)置。
如果一個程序在某些情況下多次出錯,或者運行時間足夠長,其性能可能會下降,就像一臺計算機一樣,使用時間越長,恢復(fù)速度越慢,這是一個很好的方法。當(dāng)然,這是治標(biāo)不治本,但無疑是最省力的方法之一。當(dāng)滿足設(shè)定的重啟條件時,程序自重啟也是使程序持續(xù)運行的好方法。
如何解決Python爬蟲代理ip異常和超時問題?編程人員在敲打代碼的時候,一定會有一些錯誤,尤其是像Python爬蟲這樣的程序,并不能確定每個請求都保證了穩(wěn)定的返回相同的結(jié)果,如加強了反爬蟲機制、代理IP超時等,這類情況得到及時解決,才能保證爬蟲工作良好的返回。
感謝你能夠認(rèn)真閱讀完這篇文章,希望小編分享的“Python爬蟲中代理ip異常和超時怎么辦”這篇文章對大家有幫助,同時也希望大家多多支持億速云,關(guān)注億速云行業(yè)資訊頻道,更多相關(guān)知識等著你來學(xué)習(xí)!
免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點不代表本網(wǎng)站立場,如果涉及侵權(quán)請聯(lián)系站長郵箱:is@yisu.com進(jìn)行舉報,并提供相關(guān)證據(jù),一經(jīng)查實,將立刻刪除涉嫌侵權(quán)內(nèi)容。