在我們請求的過程中會遇到網路不好或者程式連線有問題的情況,如果這些異常不處理,程式可能會因為報錯而終止執行。
urlerror類來自於urllib庫的error模組,是error異常模組中的基類,由request模組中的異常都可以通過這個類處理。
from urllib import request,error
try:
responde = request.urlopen(
"")except error.urlerror as e:
print(e.reason)
執行結果:
他是urlerror的子類,專門處理http請求錯誤,比如認證失敗,有三個屬性
code:返回http狀態碼
reason:返回錯誤原因
header:返回請求頭
)# 因為urlerror是httperror的父類,所以可以先捕捉子類的錯誤,再捕獲父類的錯誤
except error.urlerror as e:
print(e.reason)
else:
print(
"request success"
)執行結果:
依次輸出reason、code、header。**中先捕獲httperror,獲取錯誤資訊,如果不是httperror異常,再捕獲urlerror異常。
有時候reason屬性返回來的不一定是乙個字串,還可能是乙個物件
try:
response = request.urlopen(
"", timeout=0.001)
except urllib.error.urlerror as e:
print(type(e.reason))
if isinstance(e.reason, socket.timeout):
print(
"time out"
)
執行結果
reason 是乙個socket.timeout類,我們可以判斷出他的型別,做出更詳細的異常判斷。
爬蟲 urllib2庫的使用
所謂網頁抓取,就是把url位址中指定的網路資源從網路流中讀取出來,儲存到本地。在python中有很多庫可以用來抓取網頁,我們先學習urllib2。urllib2 官方文件 urllib2 原始碼 urllib2在 python3.x 中被改為urllib.request 我們先來段 urllib2 ...
Struts2處理流程
基本簡要流程如下 1 客戶端瀏覽器發出 請求。2 根據 web.xml 配置,該請求被 filterdispatcher 接收。3 根據 struts.xml 配置,找到需要呼叫的 action 類和方法,並通過 ioc方式,將值注入給 aciton。4 action 呼叫業務邏輯元件處理業務邏輯,...
C Tips2 處理資料
1.以兩個下劃線或大寫字母和下劃線開始的變數不違法,但可能會導致不確定性。單下劃線開頭用作全域性識別符號。2.c 提供一種靈活的標準 3.在climits 中包含了一些限制資訊,如int max為最大的int,char bit為位元組位數。4.c 新增了一種c中沒有的初始化語句 int new in...