筆記requests庫

發表於2019-03-23

Python網路爬蟲與資訊提取

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: 控制訪問的引數,均為可選項

  1. params: 字典或位元組序列,作為引數增加到url中
  2. data: 字典、位元組序列或檔案物件,作為Request的內容
  3. json: JSON格式的資料,作為Request的內容
  4. headers: 字典,HTTP定製頭
  5. cookies: 字典或CookieJar,Request中的cookie
  6. auth: 元組,支援HTTP認證功能
  7. files: 字典型別,傳輸檔案
  8. timeout: 設定超時時間,秒為單位(產生異常)
  9. proxies: 字典型別,設定訪問代理伺服器,可以增加登入認證
  10. allow_redirects: True/False,預設為True,重定向開關
  11. stream: True/False,預設為True,獲取內容立刻下載的開關
  12. verify: True/False,預設為True,認證SSL證照開關
  13. 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)

相關文章