Request庫的安裝與使用


Request庫的安裝與使用

安裝

pip install reqeusts

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

Response對象的屬性

  • r.status_code HTTP請求的返回狀態,200表示連接成功,404表示失敗
  • r.text HTTP響應的正文字符串
  • r.encoding 從HTTP header中猜測的響應內容編碼方式
  • r.apparent_encoding 從內容中分析出的響應編碼方式
  • r.content HTTP響應內容的二進制形式

使用get方法的流程

檢查r.status_code,如果返回200,繼續處理,如果返回404,則說明訪問出錯。

encoding 和 apparent_encoding的區別

encoding是header的charset中記錄的編碼,若沒有改標簽,則默認為iso-8859-1
apparent_encoding是分析文本內容中出現的字符確定的編碼。
一般來說如果文本編碼識別錯誤,可以將apprent_encoding賦值給r.encoding

Requests庫的異常

requests.ConnectionError 網絡連接錯誤異常,如DNS查詢失敗、拒絕連接
requests.HTTPError HTTP錯誤異常
requests.URLRquired URL確實異常
requests.TooManyRedirects 超過最大重定向次數,產生重定向異常
requests.ConnectTimeout: 遠程連接超時異常
requests.Timeout: 請求URL超時,產生超時異常
r.raise_for_status() 如果返回的狀態碼不是200,則會產生requests HTTPError異常

request方法

requests.requst(method,url,**kwargs)

  • method:請求方式,對應get/put/post等7種

    r = requests.request(‘GET’,url,**kwargs)
    r = requests.request(‘HEAD’,url,**kwargs)
    r = requests.request(‘POST’,url,**kwargs)
    r = requests.request(‘PUT’,url,**kwargs)
    r = requests.request(‘PATCH’,url,**kwargs)
    r = requests.request(‘DELETE’,url,**kwargs)
    r = requests.request(‘OPTIONS’,url,**kwargs)

url:頁面的鏈接

**kwargs: 控制訪問的參數,共13個

  • params: 字典或字節序列,作為參數增加到url中
  • data: 字典、字節序列或文件對象,作為Request的內容
  • json: JSON格式的數據,作為Request的內容
  • header: 字典,HTTP定制頭
hd = {'user-agent':'Chrome/10'}
r = requests.request('POST','HTTP://python123.io/ws',headers=hd)
  • cookies:字典或CookieJar,Request中的cookie
  • auth :元組,支持HTTP認證功能
  • files: 字典類型,傳輸文件
fs = {'file':open('data.xls','rb')}
r = requests.request('POST','http://python123.io/ws',files=fs)
  • timeout:給請求設置超時時間
  • proxies: 字典類型,設定訪問代理服務器,可以增加登錄認證
pxs = {'http':'http://user:pass@10.10.10.1':1234' 'http':'http://10.10.10.1:4321' } r = requests.request('GET','http://www.baidu.com',proxies=pxs)
  • allow_redirects: True/False,默認為True,重定向開關
  • stream: True/False,默認為True,獲取內容立即下載開關
  • verify: True/False,默認為True,認證SSL證書開關
  • cert: 本地SSL證書路徑


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM