Requests庫
`
1.Response對象的屬性
屬性 | 說明 |
---|---|
r.status_code | HTTP請求返回的狀態,200表示成功,404表示失敗,還有其他的也代表失敗 |
r.text | HTTP響應內容轉換成字符串格式 |
r.content | HTTP響應內容轉換成二進制格式 |
r.encoding | 從HTTP header中猜測響應內容 |
r.apparent_encoding | 從內容中分析響應內容的編碼方式(備選編碼方式) |
r.encoding
與r.apparent_encoding
-
r.encoding:如果header中不存在charset,則默認編碼為ISO-8859-1
-
r.apparent_encoding :根據內容來匹配出合適的編碼
-
apparent_encoding比encoding更加准確的展示編碼方式
2.Requests庫的異常
異常 | 說明 |
---|---|
requests.ConnectionError | 網絡連接錯誤異常,如DNS查詢失敗、拒絕連接等 |
requests.HTTPErro | HTTP錯誤異常 |
requests.URLRequired | URL缺失異常 |
requests.TooManyRedirects | 超過最大重定向次數,產生重定向異常 |
requests.ConnectTimeout | 連接遠程服務器超時異常 |
requests.Timeout | 請求URL超時,產生超時異常 |
-
如果在r.status_code不是200時候,我們可以r.raise_for_status(),如果不是200,引發HTTPError異常
舉例:通用爬取的框架
import requests def get_html_text(url): try: r =requests.get(url,timeout=30) r.raise_for_status() #如果不是200,引發HTTPError異常 r.encoding = r.apparent_encoding return r.text except: return '產生異常' if __name__ == '__main__' #在pycharm中你可以直接main+Tab快速出這行 get_html_text(https://www.cnblogs.com/pythonywy)
3.Requests庫的方法
3.Requests庫的方法
http協議中6個方法 | 介紹 |
---|---|
GET | 請求獲取url位置的資源 |
HEAD | 請求獲取url位置的資源的響應報告,及獲得頭部信息 |
POST | 請求獲取url位置的資源后附加用戶新的數據 |
PUT | 請求獲取url位置儲存一個資源,覆蓋原url位置資源 |
PATCH | 請求局部更新url位置資源,及改變該處資源的部分內容 |
DELETE | 請求刪除url位置儲存的資源 |
-
獲取雲端資源用get,head
-
把自己資源放入雲端用put post patch
-
刪除現有資源del
用url對資源位置的定義
1.patch與put區別
patch可以對於局部修好,put是全部覆蓋
requests與協議方法一一對應
方法 | 介紹 |
---|---|
requests.request() | 設置請求格式 |
requests.get() | 請求獲取url位置的資源 |
requests.head() | 請求獲取url位置的資源的響應報告,及獲得頭部信息 |
requests.post() | 請求獲取url位置的資源后附加用戶新的數據 |
requests.put() | 請求獲取url位置儲存一個資源,覆蓋原url位置資源 |
requests.patch() | 請求局部更新url位置資源,及改變該處資源的部分內容 |
requests.delete() | 請求刪除url位置儲存的資源 |
4.Requests庫13個參數
params
:字典或字節序列,作為參數增加到鏈接中data
:字典,字節序列或文件對象,作為請求的內容json
:JSON格式的數據,作為Request的內容headers
:字典,HTTP定制頭(模擬瀏覽器進行訪問)cookies
:字典或CpplieJar,Request中的cookieauth
:元祖,支持HTTP認證功能files
:字典類型,傳輸文件timeout
:設定超時時間,秒為單位proxies
:字典類型,設定訪問代理服務器,可以增加登陸認證allow_redirects
:True//False,默認為True,重定向開關stream
:True/False,默認為True,獲取內容立即下載開關verify
:True/False,默認為True,認證SSL證書開關cert
:本地SSL證書路徑