python中requests模組的使用方法

2022-10-03 21:51:19 字數 2704 閱讀 7640

在http相關處理中使用python是不必要的麻煩,這包括urllib2模組以巨大的複雜性代價獲取綜合性的功能。相比於urllib2,kenneth reitz的requests模組更能簡約的支援完整的簡單用例。

簡單的例子:

想象下我們試圖使用get方法從獲取資源並且檢視返回**,content-type頭資訊,還有response的主體內容。這件事無論使用urllib2 或者requests都是很容易實現的。

urllib2

>>> import urllib2

>>> url = ''

>>> response = urllib2.urlopen(url)

>>> response.getcode()

200

>>> response.headers.getheader('content-type')

'text/html; charse'

>>> response.read()

'hello, world!'

requests

>>> import requests

>>> url = ''

>>> response = requests.get(url)

>>> response.status_code

200

>>> response.headers['content-type']

'text/html; charset=utf-8'

>>> responsldbipjrpewe.content

u'hello, world!'

這兩種方法很相似,相對於urllib2呼叫方法讀取response中的屬性資訊,requests則是使用屬性名來獲取對應的屬性值。

兩者還有兩個細微但是很重要的差別:

1 requests 自動的把返回資訊有unicode解碼

2 requests 自動儲存了返回內容,所以你可以讀取多次,而不像urllib2.urlopen()那樣返回的只是乙個類似檔案型別只能讀取一次的物件。

第二點是在python互動式環境下操作**很令人討厭的事情

乙個複雜一點的例子:

現在讓我們嘗試下複雜點得例子:使用get方法獲取的資源,這次需要基本的http驗證。使用上面的**作為模板,好像我們只要把urllib2.urlopen() 到requests.get()之間的**換成可以傳送username,password的請求就行了

這是urllib2的方法:

乙個簡單的方法中例項化了2個類,然後組建了第三個類,最後還要裝載到全域性的urllib2模組中,最後才呼叫了urlopen,那麼那兩個複雜的類是什麼的

迷惑了嗎,  這裡所有urllib2的文件

那requests是怎麼樣解決同樣的問題的呢?

requests

>>> import requests

>>> url = 'secret'

&>> response = requests.get(url,auth=('dan','h0tdish'))

>>> response.status_code

200

>>> response.content

u'welcome to the secret page!'

只是在呼叫方法的時候增加了乙個auth關鍵字函式

我敢打賭你不用查文件也能記住。

錯誤處理 error handling

requests對錯誤的處理也是很非常方面。如果你使用了不正確的使用者名稱和密碼,urllib2會引發乙個urllib2.urlerror錯誤,然而requests會像你期望的那樣返回乙個正常的response物件。只需檢視response.ok的布林值便可以知道是否登陸成功。

>>> response = requests.get(url,auth=('dan','wrongpass'))

>>> response.ok

false

其他的一些特性:

* requests對於head, post, put, patch, 和 delete方法的api同樣簡單

* 它程式設計客棧可以處理多部分上傳,同樣支援自動轉碼

* 文件更好

* 還有更多

requests 是很好的,下次需要使用http時候可以試試。

本文標題: python中requests模組的使用方法

本文位址:

python中的requests模組

requests是用python實現的第三方http庫。post介面 結果 還有乙個簡單的示例 更新 傳送請求與傳遞引數 帶引數的get請求 impor requests r requests.get 最基本的get請求 print r.status code 獲取返回狀態碼 print r.url...

python中requests的安裝

本文主要說明了在自帶有pip的python中如何安裝requests。pip在大部分2.7或者3以上的python都已經自帶了。那麼如何判斷是否自帶有pip 在命令列 win r 中輸入 python m pip version 出現如下圖的提示,則表示自帶有pip 準備好pip之後,如果pytho...

python中requests小技巧

關於 python requests 在使用中,總結了一些小技巧把,記錄下。1 保持請求之間的cookies,我們可以這樣做。2 請求時,會加上headers,一般我們會寫成這樣 唯一不便的是之後的 每次都需要這麼寫,顯得臃腫,所以我們可以這樣 3 預設requests請求失敗後不會重試,但是我們跑...