一、requests庫簡介
requests庫是乙個簡潔的能夠簡單地處理http請求的第三方庫,它的最大優點是程式編寫過程更接近正常url訪問過程。
另外,request庫支援非常豐富的鏈結訪問功能,包括國際網域名稱和url獲取、http長連線和連線快取、http會話和cookie保持、瀏覽器使用風格的ssl驗證、基本的摘要驗證、有效鍵值對cookie記錄、
二、request庫的使用
1.request庫中常用的網頁請求函式
get(url[,timeout=n]) 對應於http的get方式,獲取網頁最常用的方法,可以增加timeout=n引數,設定每次請求超時時間為n秒
post(url,data=) 對應於http的post方式,其中字典用於傳遞客戶資料
delete(url) 對應於http中的delete方式
haed(url) 對應於http中的head方式
options(url) 對應於http中的options方式
put(url,data=) 對應於http中的put方式,其中字典用於傳遞客戶資料
get()是獲取網頁最常用的方法,在呼叫requests.get()函式後,返回網頁內容會儲存成為乙個response物件,其中get()函式的引數url鏈結必須採用http或者https的方式訪問。
如下:
2.和瀏覽器互動過程一樣,requests.get()代表請求過程,它返回的response物件代表響應,返回內容作為乙個物件更便於操作,下面介紹response物件的屬性:
status_code http請求的返回狀態,整數200表示連線成功,404表示失敗
text http響應內容的字串形式,即url對應的頁面內容
encoding http響應內容的編碼方式
content http響應內容的二進位制形式
(1)status_code屬性返回請求http後的狀態,在處理資料之前要先判斷狀態情況,如果請求未被響應,需要終止處理內容。text屬性是請求的頁面內容,以字串形式展示。encoding屬性非常重要,
它給出了返回頁面內容的編碼方式,可以通過對encoding屬性值更改編碼方式,以便於處理中文字元。content屬性是頁面內容的二進位制形式。
如下獲取文字:
如下改變編碼型別:
(2)response物件的方法:
json 如果http響應內容包括json格式資料,則該方法解析json資料
raise_for_status 如果不是200,則產生異常
json()方法能夠在http響應內容中解析存在的json資料,這將帶來解析http的便利。raise_for_status()方法能在非成功響應內容後產生異常,即只要返回的請求狀態status_code不是200,
這個方法就會產生乙個異常,用於try-except語句。使用異常處理語句可以避免設定一堆複雜的if語句,只需要在收到響應時呼叫這個方法,就可以避開狀態200以外的各種意外情況。
requests會產生幾種異常。當遇到網路問題時,如dns查詢失敗、拒絕連線等,requests會丟擲connectionerror異常;遇到http響應無效時,requests則會丟擲httperror異常;若請求url超時,則丟擲timeout異常;
若請求超過了設定的最大重向次數,則會丟擲乙個toomanyredirects異常。
乙個獲取乙個網頁內容的函式**:
僅用於python學習筆記
python小白學習記錄 爬蟲requests篇
一 引用庫 import requests 二 請求訪問url,網頁相應 res requests.get 網頁位址 三 表明返回內容 目前返回的response物件有四種屬性 status code 檢查請求是否成功 content 將資料轉換為二進位制資料 text 將資料轉換為字串型資料 en...
Python爬蟲 HTTP協議 Requests庫
http協議 http hypertext transfer protocol 即超文字傳輸協議。url是通過http協議訪問資源的internet路徑,乙個url對應乙個資料資源。http協議對資源的操作 requests庫提供了http所有的基本請求方式。官方介紹 requests庫的6個主要方...
python 爬蟲系列02 認識 requests
本系列所有文章基於 python3.5.2 requests 是基於 urllib 的三方模組,相比於 uillib,操作更簡潔,功能更強大,而且支援 python3 getimport requests r requests.get url print r.status code print r....