Request庫的使用

Request庫:封裝了自動(dòng)爬取HTML頁面,自動(dòng)網(wǎng)絡(luò)請求提交的方法的庫

Request庫的7個(gè)主要方法:

requests.request():構(gòu)造一個(gè)請求,是一下個(gè)方法的基礎(chǔ)

requests.get():獲取HTML網(wǎng)頁的主要方法,對應(yīng)于HTTP的GET

requests.head():獲取HTML網(wǎng)頁頭部信息的方法,對應(yīng)HTML的HEAD

requests.post():向HTML網(wǎng)頁提交POST請求的方法,對應(yīng)于HTTP的POST

requests.put():向HTML網(wǎng)頁提交PUT請求的方法,對應(yīng)于HTTP的PUT

requests.patch():向HTML網(wǎng)頁提交局部修改請求的方法,對應(yīng)于HTTP的PATCH

requests.delete():向HTML頁面提交刪除請求的方法,對應(yīng)于HTTP的DELETE

get()方法

r = requests.get()

r 是返回的一個(gè)包含服務(wù)器資源的Response對象,get()方法構(gòu)造一個(gè)向服務(wù)器發(fā)送請求的Request對象

requests.get()

requests.get(url,params=None,**kwargs)

url:擬獲取頁面的url連接

params :url中的額外參數(shù),字典或字節(jié)流格式,可選

**kwargs:12個(gè)訪問控制參數(shù)

Request對象

Response包含服務(wù)器返回的所有信息,也包含了Request的請求信息

Response對象的屬性

r.status_code:HTTP請求的返回狀態(tài),200表示成功,400表示失敗

r.encoding:從HTTP請求的head中猜測的響應(yīng)內(nèi)容編碼格式,默認(rèn)是IOS8859-1

r.apparent_encoding:從返回內(nèi)容中分析的編碼方式(備選編碼方式)

r.textHTTP:響應(yīng)內(nèi)容的字符串形式,url對應(yīng)的而頁面內(nèi)容

r.contentHTTP:相應(yīng)內(nèi)容的二進(jìn)制形式

簡單爬蟲demo:

import requests

def getHTMLText(url):

?????try: r = requests.get(url, timeout=30)?

????????r.raise_for_status() # 如果狀態(tài)不是200, 引發(fā)HTTPError異常

?????????r.encoding = r.apparent_encoding

?????return r.text except: return "產(chǎn)生異常"?

if __name__=="__main__":?

????url = "http://www.baidu.com"?

????print(getHTMLText(url))

Request庫的異常:

ConnectionError:網(wǎng)絡(luò)連接異常,如DNS查詢失敗、拒絕連接等

HTTPError:HTTP錯(cuò)誤異常

URLRequest:url確實(shí)異常

TooManyRedirects:超過最大重定向次數(shù)異常

ConnectionTimeout:網(wǎng)絡(luò)連接超時(shí)

Timeout:請求url超時(shí)

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容