標籤:cts 字串 異常 charset exce rect 更新 mil ppa
requests庫的七個主要方法
1. requests.requests(method, url, **kwargs)
構造一個請求,支撐以下各方法的基礎方法
method:請求方式,對應get/put/post等七中方法;
url:擬擷取頁面的url連結;
**kwargs:控制訪問的參數,共13個;
method:請求方式
GET:請求擷取url位置的資源;
HEAD:獲得該資源的頭部資訊;
POST:請求向url位置的資源後附加新的資料;
PUT:請求向url位置儲存一個資源,覆蓋原url位置的資源;
PATCH:請求局部更新url位置的資源,即改變該處資源的部分內容;
DELETE:請求刪除url位置儲存的資源;
**kwargs:控制訪問的參數,均為可選
params:字典或位元組序列,作為參數增加到url中;
data:字典,位元組序列或檔案對象,作為Requests的內容;
json:Json格式的資料,作為Requests的內容;
headers:字典,HTTP定製頭;
cookies:字典或cookiejar,Requests中的cookie;
auth:元組,支援HTTP認證功能;
files:字典類型,傳輸檔案;
timeout:設定超逾時時間,秒為單位;
proxies:字典類型,設定訪問Proxy 伺服器,可以增加登記認證;
allow_redirests:True/Flase,預設為True,重新導向開關;
stream:True/False,預設為True,擷取內容立即下載開關;
verify:True/False,預設為True,認證SSL認證開關;
cert:本地SSL憑證路徑;
2. request.get(url, params=None, **kwargs)
擷取HTML網頁的主要方法,對應HTTP的GET;
params:url中額外參數,字典或位元組流格式,可選;
**kwargs:12個控制訪問參數;
3.requests.head(url, **kwargs)
擷取HTML網頁頭資訊方法,對應HTTP的HEAD;
**kwarge:12個控制訪問參數;
4.requests.post(url, data=None, json=None, **kwargs)
向HTML網頁提交post請求的方法,對應HTTP的POST;
data;字典、位元組序列或檔案,Requests的內容;
json:Json格式的資料,Requests的內容;
**kwargs:12個控制訪問參數;
5.requests.put(url, data=None, **kwargs)
向HTML網頁提交PUT要求方法,對應HTTP的PUT;
data:字典、位元組序列或檔案,Requests的內容;
**kwargs:12個控制訪問參數;
6. requests.patch(url, data=None, **kwargs)
向HTML頁面提交局部修請求,對應HTTP的PATCH;
data:字典、位元組序列或檔案,Requests的內容;
**kwagrs:12個控制訪問參數;
7. requests.delete(uel, **kwagrs)
向HTML頁面提交刪除請求,對對應HTTP的DELETE;
**kwagrs:12個存取控制的參數;
requests庫的兩個重要的對象
Response對象的屬性
1. r.status_code
HTTP請求的返回狀態,200表示連結成功,404或其他表示失敗;
2. r.text
HTTP響應內容的字串形式,即url對應的頁面內容;
3. r.encoding
從HTTP header中猜測的響應內容編碼方式;
如果header中不存在charset,則認為編碼為ISO-8859-1,r.text根據r.encoding顯示網頁內容;
4. r.apparent_encoding
從內容中分析出的響應內容編碼方式(備選編碼方式);
5. r.content
HTTP響應內容的二進位形式;
Requests庫的異常
1. requests.ConnectionError
網路連接錯誤異常,如DNS查詢失敗,拒絕連結等;
2. requests.HTTPError
HTTP錯誤異常;
3. requests.URLRequired
url缺失異常;
4.requests.TooManyRedirects
超出最大重新導向次數,產生重新導向異常;
5. requests.ConnectTimeout
串連遠程伺服器逾時異常;
6. requests.Timeout
請求url逾時,產生逾時異常;
7.r.raise_for_status()
如果不是200,產生異常requests.HTTPError;
爬取網頁的通用代碼架構
import requestsdef getHTMLText(url): try: r = requests.get(url, timeout=30) r.raise_for_status() #RU如果狀態不是200,引發HTTPError異常 r.encoding() = r.appearent_conding() return r.text except: return "產生異常"if __name__ == "__name__": url = "www.baidu.com" print(getHTMLText(url))
python爬蟲requests模組