目錄
1、requests庫簡介
2、requests庫-安裝
3、requests庫-使用
3.1 導(dǎo)入模塊
3.2 發(fā)送請求
3.3 requests庫常用方法
3.4 訪問控制參數(shù)kwargs
?4、請求返回對象 Response
5、requests訪問時的可能異常
1、requests庫簡介
- requests是一個http的第三方請求庫,發(fā)送http請求,并獲取響應(yīng)結(jié)果;
2、requests庫-安裝
pip install requests
#使用清華園鏡像安裝:
pip install -i https://pypi.tuna.tsinghua.edu.cn/simple requests
3、requests庫-使用
3.1 導(dǎo)入模塊
import requests
3.2 發(fā)送請求
import requests # 安裝好requests后,導(dǎo)入模塊
url = 'https://www.baidu.com'
headers = {'content': 'text/html;charset=utf-8'}
resp = requests.get(url, headers)
print(resp) # <Response [200]> 代表OK
resp.encoding = 'utf-8' # 定義響應(yīng)對象的編碼
print(resp.text)# 打印網(wǎng)頁數(shù)據(jù)
resp.close() # 爬完數(shù)據(jù),請務(wù)必要關(guān)閉
3.3 requests庫常用方法
方法 | 作用 |
---|---|
requests.request(method,url,**kwargs) | 創(chuàng)建和發(fā)送一個請求,通用方案 |
requests.get() | 發(fā)送get請求,對應(yīng)http的get方法 |
requests.post() | 發(fā)送post請求,對應(yīng)http的post方法 |
requests.head()???????? | 獲取網(wǎng)頁的頭信息,對應(yīng)http的HEAD方法 |
3.4 訪問控制參數(shù)kwargs
resp = requests.request('get',url, **kwargs)
kwargs參數(shù) | 作用 |
---|---|
params | 字典類型,作為參數(shù)增加到url ; get方法參數(shù)傳遞 |
data | 字典 / 字節(jié)序列 / 文件對象,作為Requests對象的內(nèi)容; post方法參數(shù)傳遞; |
json | json格式的數(shù)據(jù),作為Requests的內(nèi)容; 前后端分離以json參數(shù)上傳數(shù)據(jù); |
headers???????????????? | 字典類型,HTTP定制頭,例如設(shè)置User-Agent; |
cookies???????? | 字典或者CookieJar,Request中的cookie |
auth | 元組,支持HTTP認證功能; |
files | 傳輸文件,字典類型; key:參數(shù)名,value:文件對象; |
timeout | 設(shè)定超時事件,單位為秒; |
proxies | 字典類型,設(shè)定訪問代理服務(wù)器; |
allow_redirects | 是否允許重定向,默認:True; |
stream | 是否以字節(jié)流形式獲取內(nèi)容并下載; 下載文件時候使用; |
verify | 是否驗證SSL證書,默認為True; |
cert | 本地SSL證書路徑; |
?4、請求返回對象 Response
resp = requests.request('get',url, **kwargs);
?resp:響應(yīng)對象,一個包含服務(wù)器資源的響應(yīng)對象;
屬性 | 作用 |
---|---|
resp.request | 獲取Http請求對象? ;返回: <PreparedRequest [GET]> |
resp.status_code | http請求返回狀態(tài)碼 ; 200表示成功; |
resp.text | http響應(yīng)的字符串形式;? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? |
resp.content | http響應(yīng)的二進制形式;例如:圖片,音頻,視頻等; |
resp.encoding | 從http的header中響應(yīng)編碼方法; |
resp.apparent_encoding | 從內(nèi)容中分析響應(yīng)內(nèi)容編碼方式;(備選編碼方式) |
方法 | 作用 |
resp.raise_for_status() | 該方法內(nèi)部判斷resp.status_code == 200,不等則拋異常 |
resp.json() | 得到對應(yīng)的json格式數(shù)據(jù);? 補充:Python有json模塊,可以實現(xiàn)字符串和json的轉(zhuǎn)換; |
注意:★★★★★文章來源:http://www.zghlxwxcb.cn/news/detail-808324.html
- encoding屬性: 如果header中不存在charset,則認為是ISO-8859-1編碼;
- text屬性:根據(jù)encoding屬性的編碼方式顯示網(wǎng)頁內(nèi)容;
- 當(dāng)編碼方式不一致,可能會出現(xiàn)亂碼;
- apparent_encoding屬性:是根據(jù)網(wǎng)頁內(nèi)容分析出的編碼方式;看做encoding屬性的備選;
5、requests訪問時的可能異常
異常 | 說明 |
---|---|
requests.ConnectionError | 網(wǎng)絡(luò)連接異常,如:拒絕連接,DNS查詢失敗等 |
requests.HTTPError???????? | http錯誤異常 |
requests.URLRequired | URL缺失異常 |
requests.ToolManyRedirects | 超過最大重定向次數(shù),產(chǎn)生重定向異常 |
requests.ConnectTimeout | 連接遠程服務(wù)器超時異常 |
requests.Timeout | 請求URL超時,產(chǎn)生超時異常 |
response對象提供了一個raise_for_status()方法,該方法內(nèi)部對status_code進行判斷,如果狀態(tài)碼不是200 ,則拋出HttpError異常;文章來源地址http://www.zghlxwxcb.cn/news/detail-808324.html
到了這里,關(guān)于python爬蟲02-requests庫使用01的文章就介紹完了。如果您還想了解更多內(nèi)容,請在右上角搜索TOY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!