Python關於requests庫的整理

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

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

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

  1. URL:全稱爲Uniform Resource Locator統一資源定位符,包含了協議,服務器名稱,路徑和文件名等信息。API:全稱爲application programming interface;應用程序編程接口;
  2. params:字典或字符串格式作爲參數增加到url中,是額外參數。
  3. **kwargs:代表十二個控制訪問的參數;
  4. data:字典,字符串或文件對象,作爲Request對象的內容;
  5. json: JSON格式的數據作爲Request對象的內容;
  6. headers:字典,HTTP頭部信息;目的是將請求僞裝成諸如瀏覽器,使用post方法向服務器發起訪問;
  7. cookies:字典或者CookieJar,Request中的cookie;
  8. auth:元組,支持HTTP認證功能;
  9. files: 字典類型,向服務器傳輸文件;
  10. timeout: 設定超時時間,單位秒;
  11. proxies:字典類型,設定訪問代理服務器,可以增加登錄認證;
  12. allow_redirects:True/False,默認爲True,重定向開關; //高級功能使用
  13. stream: 布爾值,默認爲真,獲取內容立即下載開關;//高級功能使用
  14. verify:布爾值,默認爲真,認證SSL證書開關; //高級功能使用
  15. cert:保存本地SSL證書路徑; //高級功能使用

以上3-15這13個參數通過賦值的方法來調用

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)
  • request方法:向url頁面構造一個請求,其餘六種方法通過調用封裝好的request函數來實現的;
  • get方法: 獲取一個HTML頁面的信息;對應於HTTP的GET;
  • head方法:獲取HTML網頁的頭部信息;對應於HTTP的HEAD;
  • post方法:向HTML網頁提交POST請求;對應於HTTP的POST;(根據提交內容的不同,自動存儲信息爲form形式或者data形式)
  • put方法:向HTML網頁提交PUT(全局修改)請求;對應於HTTP的PUT;(根據提交內容的不同,自動存儲信息爲form形式或者data形式)
  • patch方法:向HTML網頁提交局部修改請求;對應於HTTP的PATCH;
  • delete方法:向HTML網頁提交刪除請求;對應於HTTP的DELETE;
通用代碼框架:
try:
    r=requests.get(url,timeout=30)
    r.raise_for_status()
    r.encoding=r.apparnet_encoding()
    return r.text
except:
    return"產生異常"
Response對象的屬性:
  • r.status_code: HTTP請求返回的狀態,200表示成功,404和其他表示失敗;
  • r.text: 響應內容的字符串形式;
  • r.encoding: 從響應內容的頭部信息來推斷編碼形式
  • r.apparent_encoding: 從響應內容的內容信息來推斷編碼形式;
  • r.content: 將爬取到的響應內容的二進制形式還原成響應內容;
  • Response對象提供了一個單獨的方法raise_for_status()方法, r.raise_for_status() : HTTP的請求返回狀態不是200則產生 request.HTTPError;
requests庫的異常處理:
  • requests.ConnectionError: 網絡連接錯誤異常,如DNS查詢失敗,拒絕連接等;
  • requests.HTTPError: HTTP錯誤異常
  • requests.URLRequired: URL缺失異常
  • requests.TooManyRedirects: 超過最大重定向次數,產生重定向異常;
  • requests.ConnectTimeout: 連接遠程服務器超時異常;
  • requests.Timeout: 請求URL超時,產生超時異常;
HTTP協議:Hypertext Transfer Protocol 超文本傳輸協議;是一個基於“請求與響應”模式的,無狀態的(非時序)應用層協議;
  • host: Internet主機域名或IP地址;
  • port: 端口號,缺省端口默認爲80;
  • path: 請求資源的路徑;
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章