溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務(wù)條款》

Python爬蟲中代理ip異常和超時怎么辦

發(fā)布時間:2021-09-07 14:23:38 來源:億速云 閱讀:149 作者:小新 欄目:編程語言

這篇文章主要介紹了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í)!

向AI問一下細(xì)節(jié)

免責(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)容。

AI