99999久久久久久亚洲,欧美人与禽猛交狂配,高清日韩av在线影院,一个人在线高清免费观看,啦啦啦在线视频免费观看www

熱線電話:13121318867

登錄
2018-10-21 閱讀量: 1296
python爬蟲常見報錯小結(jié)及解決方法

首先聲明下面的報錯是在使用BeautifulSoup的基礎(chǔ)上的
**(1).list index out of range **
這種情況基本就是你獲取的列表為空,所以在選取第x各元素([x])時就會報錯。
(2).requests 要對返回的狀態(tài)碼做判斷
r=requests.get(url)
if r.status_code==200:
(3).異常
異常是指程序中的例外,違例情況。異常機制是指程序出現(xiàn)錯誤后,程序的處理方法。當(dāng)出現(xiàn)錯誤后,程序的執(zhí)行流程發(fā)生改變,程序的控制權(quán)轉(zhuǎn)移到異常處理。可能情況有,比如寫入文件的時候,磁盤滿了,寫不進去了;從網(wǎng)絡(luò)抓取數(shù)據(jù),網(wǎng)絡(luò)突然斷掉了;抓取數(shù)據(jù)時ip被封等等。
其他異常如寫進文件時磁盤滿了等情況在后面進行文件操作時才會涉及。單單就爬蟲過程來看一般是在requests()過程中出現(xiàn)下面幾種異常情況:
一、遇到網(wǎng)絡(luò)問題時,Requests會拋出一個 ConnectionError 異常。
具體情況有兩種:一是請求的網(wǎng)址錯誤或不存在;二是網(wǎng)絡(luò)中斷
二、遇到無效HTTP響應(yīng)時,Requests則會拋出一個 HTTPError 異常。
具體情況有:服務(wù)器拒絕連接,即ip被封等
一般HTTPError又分為 4XX:客戶端錯誤 和 5XX:服務(wù)器錯誤。
對于前兩種異常通常使用try...exception...來解決,具體如下:

try:

#這一部分寫正常的運行語句

req=requests.get(url)

...

...

except (requests.ConnectionError, IndexError, UnicodeEncodeError,TimeoutError)

print(e.args)

except requests.HTTPError as f:

print('The server couldn\'t fulfill the request.')
ip被封處理辦法

若請求超時,則拋出一個 Timeout 異常。
具體情況有:網(wǎng)絡(luò)斷開,但經(jīng)常顯示無法連接;網(wǎng)絡(luò)阻塞;網(wǎng)絡(luò)不穩(wěn)定,網(wǎng)絡(luò)無法完整傳送服務(wù)器信息;系統(tǒng)原因,系統(tǒng)資源過低,不足以
解決辦法:
Timeout又分為connect timeout和read timeout。前者指的是你發(fā)出request請求到和服務(wù)器建立連接之間的等待時間;后者是同服務(wù)器建立連接后到服務(wù)器發(fā)回response之間的等待時間。那么在請求時可以加上相應(yīng)的timeout時間,形式如下:
a).r = requests.get('https://XXXX.com', timeout=5)表示默認(rèn)connect timeout和read timeout的值均為5秒;
b). r = requests.get('https://XXXX.com', timeout=(3.05, 27))表示connect timeout=3.05秒,read timeout=27秒;
c).r = requests.get('https://XXXX.com', timeout=None)則表示一直等待到服務(wù)器有響應(yīng)為止。

0.0000
2
關(guān)注作者
收藏
評論(0)

發(fā)表評論

暫無數(shù)據(jù)
推薦帖子