日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程语言 > python >内容正文

python

python爬虫网络请求超时是什么意思_python爬虫怎么处理异常和超时?

發布時間:2024/1/23 python 24 豆豆
生活随笔 收集整理的這篇文章主要介紹了 python爬虫网络请求超时是什么意思_python爬虫怎么处理异常和超时? 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

該樓層疑似違規已被系統折疊?隱藏此樓查看此樓

寫代碼總是會出異常的,尤其是爬蟲這類程序,無法確保每次請求都能穩定地返回統一的結果,比如反爬蟲策略提升、代理IP超時、程序異常等等,處理好這些問題,才能保證爬蟲程序持續地運行下去。

一、反爬蟲策略。這里不多說,之前有討論過,可以參考之前的文章《爬蟲如何有效突破網站的反爬機制?》。

二、超時設置。網絡總是不會一如既往的穩定如一,可能代理IP某個時間不穩定,也可能目標服務器某個時間不穩定,還有自身機器的網絡也可能不穩定,如果不設置好超時,程序也不好跑下去。

selenium+chrome的超時設置:

顯式等待:、等待某個條件發生,然后再繼續進行代碼。

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在嘗試查找一個或多個元素(如果它們不是立即可用的)時輪詢DOM一定時間。默認設置為0,一旦設置,將為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語句來處理異常。try&except語句不僅僅是要讓其捕獲異常更重要的是讓其忽略異常,因為爬蟲中的絕大多數異常可能重新請求就不存在,因此,發現異常的時候將其任務隊列進行修復其實是個最省力的好辦法。

try:

passhttp://www.***.com/***/#

#可能出錯的語句

except Exception,e:

pass

#保留錯誤的url,留待下次重跑

print e

finally:

#無論是否處理了異常都繼續運行

print time.ctime()

四、自重啟設置。如果一個程序在某種情況下報錯多次,或者運行時間夠久遠,那么其性能可能會下降,就像一臺電腦一樣,用的越久就越慢,重啟不失為一個好辦法。當然這是治標不治本,但無疑是最省力的方法之一,當滿足設置的重啟條件后,程序自重啟,也是讓程序持久運行的一個好方法。

總結

以上是生活随笔為你收集整理的python爬虫网络请求超时是什么意思_python爬虫怎么处理异常和超时?的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。