青青草免费线看线看|啊在车上停不下来了|国产少女免费观看电视剧|仑乱88MAV|精品老司机在线观看视频|国产一区二区三区高清免费视频|在线观看免费777av

Python爬蟲如何跳過異常繼續執行?Python爬蟲跳過異常處理方法

我們學習Python爬蟲的時候就說過,它可以去網頁中獲取一些我們需要的數據,如何進行數據的分析,對數據進一步處理,最近有很多的小伙伴在說使用爬蟲的時候遇到的異常的情況,但是不知道如何解決,下面一起來看看這篇文章吧 。

Python爬蟲如何跳過異常繼續執行?Python爬蟲跳過異常處理方法


一、異常報錯
最近有一些小伙伴在使用爬蟲爬圖片的時候,會遇到下面的報錯的情況,如下:
requests.exceptions.ConnectionError: HTTPConnectionPool(host='www.xxx.com', port=80): Max retries exceeded with url: / (Caused by NewConnectionError('<urllib3.connection.HTTPConnection object at 0x0334D290>: Failed to establish a new connection: [WinError 10060]又或者是下面這種錯誤,如下:
urllib.error.HTTPError: HTTP Error 403: Forbidden二、解決方法:
當我們在爬取的時候如果出現以上兩種情況之一,可能是因為網絡連接的不穩定造成的,還有一種情況是某網站設置的防爬的操作,以為是不法訪問那么會強制的關閉連接,從而操作我們的爬蟲在運行的時候失敗,此時我們就要利用異常處理的操作讓爬蟲繼續運行,操作方法如下:
import requestsimport timeimport jsonfrom td import tdurl = 'https://www.xxxx.com' 這是一個需要爬取的網頁地址 。for item in td(items): 這里的items是網頁中需要爬取的框架,td設置的是一個簡單的進度條,不想看進度條可以直接for item in items:From_data = {'text': item} # 傳入requests的數據while True: #讓請求一直繼續,直到成功后breaktry:response = requests.post(url, data=https://www.ycpai.cn/python/From_data) # 如果這個請求失敗,那么并不會運行break,將運行except中的代碼break # 能運行到這一步說明請求成功,可以跳出循環了except:time.sleep(1) # 暫停1秒,之后回到while True繼續請求print('sleep')content = json.loads(response.text)# 跳出循環后對得到的數據處理在這個程序中,就是使用while True去處理出現異常的情況,當出現異常的時候程序不繼續往下執行,而是構成一個請求繼續訪問,知道成功為止 。同時在報錯的時候不會將一個程序中斷,睡眠時間可以根據需求設置,如果設置為1秒的話,在運行速度上會快一些 。
【Python爬蟲如何跳過異常繼續執行?Python爬蟲跳過異常處理方法】到此這篇關于Python爬蟲如何跳過異常繼續執行?Python爬蟲跳過異常處理方法的文章就非常到這里了,希望文章中的內容可以對大家的學習帶來一定的幫助,同時讓大家掌握到更多Python爬蟲的知識 。

    猜你喜歡