requests庫
- Response物件的屬性
屬性 | 說明 |
---|---|
r.status_code | HTTP請求返回狀態,200表示訪問成功,404表示失敗 |
r.text | HTTP響應內容的字串形式,即,url對應的頁面內容 |
r.encoding | 從HTTP header中猜測的響應內容編碼方式 |
r.apparent_encoding | 從內容分析出響應內容的編碼方式(備選編碼方式) |
r.content | HTTP響應內容的二進位制形式 |
- requests庫異常
異常 | 說明 |
---|---|
requests.ConnerctionError | 網路連線錯誤異常,如DNS查詢失敗、拒絕連線等 |
requests.HTTPError | HTTP錯誤異常 |
requests.URLRequired | URL缺失異常 |
requests.TooManyRedirects | 超過最大重定向次數,產生重定向異常 |
requests.ConnectTimeout | 連線遠端服務超時異常 |
requsts.Timeout | 請求URL超時,產生超時異常 |
r.raise_for_status() | 如果不是200,產生異常requests.HTTPError |
- requests庫的7個主要方法
方法 | 說明 |
---|---|
requests.request() | 構造一個請求,支撐以下各方法的基礎方法 |
requests.get() | 獲取HTML網頁的主要方法,對應於HTTP的GET |
requests.head() | 獲取HTML網頁頭資訊的方法,對應於HTTP的HEAD |
requests.post() | 向HTML網頁提交POST請求的方法,對應於HTTP的POST |
requests.put() | 向HTML網頁提交PUT請求的方法,對應於HTTP的PUT |
requests.patch() | 向HTML網頁提交區域性修改請求,對應於HTTP的PATCH |
requests.delete() | 向HTML頁面提交刪除修改,對應於HTTP的DELETE |
-
requests.get(url, params = None, **kwargs)
-
requests.head(url, **kwargs)
-
requests.post(url, data=None, json=None, **kwargs)
-
requests.put(url, data=None, **kwargs)
-
requests.patch(url, data=None, **kwargs)
-
requests.delete(url, **kwargs)
-
requests.request(method, url, **kwargs)
#method: 'GET' ... 'OPTIONS'
#kwargs: 控制訪問的引數,均為可選項
- params: 字典或位元組序列,作為引數增加到url中
- data: 字典、位元組序列或檔案物件,作為Request的內容
- json: JSON格式的資料,作為Request的內容
- headers: 字典,HTTP定製頭
- cookies: 字典或CookieJar,Request中的cookie
- auth: 元組,支援HTTP認證功能
- files: 字典型別,傳輸檔案
- timeout: 設定超時時間,秒為單位(產生異常)
- proxies: 字典型別,設定訪問代理伺服器,可以增加登入認證
- allow_redirects: True/False,預設為True,重定向開關
- stream: True/False,預設為True,獲取內容立刻下載的開關
- verify: True/False,預設為True,認證SSL證照開關
- cert: 本地SSL證照路徑
Robots協議
#(*代表所有,/代表根目錄)
User-agrent:*
Disallow:/
百度的關鍵詞介面:
www.baidu.com/s?wd=keywor…
#params對url,如r = requests.get('www.baidu.com/s', params = {'wd' : 'Python')
#r.request.url len(r.text)