Python關於requests庫的整理


 

r=requests.get(url,params=None,**kwargs)

 1,  使用get函數會內部生成一個Request對象,以及一個Response對象(也就是 r );

      Response對象(r)包含了Request對象發送的全部信息以及爬蟲返回的全部內容;

    1.1   URL:全稱為Uniform Resource Locator統一資源定位符,包含了協議,服務器名稱,路徑和文件名等信息。

             API:全稱為application programming interface;應用程序編程接口;

    1.2    params:字典或字符串格式作為參數增加到url中,是額外參數。

    1.3    **kwargs:代表十二個控制訪問的參數;

            (1)data:字典,字符串或文件對象,作為Request對象的內容;

            (2)json: JSON格式的數據作為Request對象的內容;

            (3)headers:字典,HTTP頭部信息;目的是將請求偽裝成諸如瀏覽器,使用post方法向服務器發起訪問;

            (4)cookies:字典或者CookieJar,Request中的cookie;

              (5)   auth:元組,支持HTTP認證功能;

            (6)files: 字典類型,向服務器傳輸文件;

            (7)timeout: 設定超時時間,單位秒;

            (8)proxies:字典類型,設定訪問代理服務器,可以增加登錄認證;

            (9) allow_redirects:True/False,默認為True,重定向開關;   //高級功能使用

           (10)stream: 布爾值,默認為真,獲取內容立即下載開關;//高級功能使用

           (11)verify:布爾值,默認為真,認證SSL證書開關;   //高級功能使用

           (12)cert:保存本地SSL證書路徑;   //高級功能使用

              13個參數通過賦值的方法來調用

 

 

2,  requests庫的七個主要方法: 

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

  

 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)

    2.1    request方法:向url頁面構造一個請求,其余六種方法通過調用封裝好的request函數來實現的;

    2.2    get方法: 獲取一個HTML頁面的信息;對應於HTTP的GET;

    2.3    head方法:獲取HTML網頁的頭部信息;對應於HTTP的HEAD;

    2.4    post方法:向HTML網頁提交POST請求;對應於HTTP的POST;

                         (根據提交內容的不同,自動存儲信息為form形式或者data形式)

    2.5    put方法:向HTML網頁提交PUT(全局修改)請求;對應於HTTP的PUT;

                       (根據提交內容的不同,自動存儲信息為form形式或者data形式)

    2.6    patch方法:向HTML網頁提交局部修改請求;對應於HTTP的PATCH;

    2.7    delete方法:向HTML網頁提交刪除請求;對應於HTTP的DELETE;

 

 

3,  通用代碼框架:

try:
    r=requests.get(url,timeout=30)
    r.raise_for_status()
    r.encoding=r.apparnet_encoding()
    return r.text
except: return"產生異常"

 

 

4,  Response對象的屬性:

    4.1    r.status_code:     HTTP請求返回的狀態,200表示成功,404和其他表示失敗;

    4.2    r.text:     響應內容的字符串形式;

    4.3    r.encoding:    從響應內容的頭部信息來推斷編碼形式

    4.4    r.apparent_encoding:    從響應內容的內容信息來推斷編碼形式;

    4.5    r.content:    將爬取到的響應內容的二進制形式還原成響應內容;

             Response對象提供了一個單獨的方法raise_for_status()方法

              r.raise_for_status() :    HTTP的請求返回狀態不是200則產生 request.HTTPError;

 

5,  requests庫的異常處理:

    5.1    requests.ConnectionError:     網絡連接錯誤異常,如DNS查詢失敗,拒絕連接等;

    5.2    requests.HTTPError:       HTTP錯誤異常

    5.3    requests.URLRequired:     URL缺失異常

    5.4    requests.TooManyRedirects:     超過最大重定向次數,產生重定向異常;

    5.5    requests.ConnectTimeout:    連接遠程服務器超時異常;

    5.6    requests.Timeout:    請求URL超時,產生超時異常;   

 

 

6,  HTTP協議:Hypertext Transfer Protocol  超文本傳輸協議;是一個基於“請求與響應”模式的,無狀態的(非時序)應用層協議;

    host:    Internet主機域名或IP地址;

    port:      端口號,缺省端口默認為80;

    path:    請求資源的路徑;

 


免責聲明!

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



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