Python關於requests庫的整理

 

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

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

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

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

             API:全稱爲application programming interface;應用程序編程接口;瀏覽器

    1.2    params:字典或字符串格式做爲參數增長到url中,是額外參數。服務器

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

            (1)data:字典,字符串或文件對象,做爲Request對象的內容;網絡

            (2)json: JSON格式的數據做爲Request對象的內容;app

            (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:    請求資源的路徑;

相關文章
相關標籤/搜索