Python基礎請求庫requests的使用

2021-10-21 11:55:15 字數 2880 閱讀 5946

​ 前面我們學習urllib庫的基本使用,但是與requests庫相比,urllib庫的部分操作還是相對比較麻煩的,例如在新增**,操作cookie時,需要構造opener和handler物件來進行處理。對於request是來說,這些操作會更加的方便自如。下面讓我們一起來學習requests庫的相關用法吧。

​ 我們使用get方式來為url加入引數,此時我們只需要將想要傳入的引數以鍵值對的形式定義成乙個字典,然後將其傳給params屬性即可,並且我們從輸出結果可以看出引數顯示在args中,事例如下:

​ 我們使用post方式來為url加入引數,此時我們同樣需要將想要傳入的引數以鍵值對的形式定義成乙個字典,然後將其傳給data屬性,並且我們從輸出結果可以看出引數顯示在form屬性中,事例如下:

​ 響應內容分為三種,一種是二進位制形式,一種是json格式,另外一種是原始字串。我們通過下面的例項依次進行演示。

​ 其次展示的json格式的響應內容,當你想用json的格式訪問資料,只需呼叫response物件內建的json方法即可自動對字串進行解析並轉換成json格式,事例如下:

[外鏈轉存失敗,源站可能有防盜煉機制,建議將儲存下來直接上傳(img-1asdqftw-1615209729362)(

​ 執行結果如下:

​ 然後展示的字串格式的響應內容,只需呼叫response物件內建的text屬性即可獲取到對應的響應內容,事例如下:

​ 執行結果如下:

​ 在大部分情況下,很多**在進行訪問的時候都必須加上一些必要的請求頭,例如user-agernt,cookies…如果你沒有加上這些請求頭,就會被拒絕訪問,現在我們就來看一下如何在requests使用的時候加請求頭。

​ 所有的請求頭都是鍵值對的形式,所以我們可以將其定義成乙個字典並用乙個變數進行接收,然後在進行請求的時候將其傳給headers這個屬性即可。

​ 每當我們向伺服器傳送出乙個request請求時,伺服器接收到請求並處理之後就會給我們返回乙個響應,該響應中包含了響應頭以及響應體的相關資訊,每乙個響應頭也都是乙個鍵值對,我們可以通過對應的鍵取出響應的值。

​ 每乙個響應都會帶有乙個狀態碼,來標誌著這個響應的狀態,是成功?是伺服器異常?還是客戶端異常?不同的狀態碼標誌這不同的狀態資訊,事例如下:

​ 當然不只有200這乙個條件碼,下面我們來列舉幾個常用的條件碼。

​ 200:成功(『ok』, 『all_ok』)

​ 302:重定向(『found』)

​ 304:有快取,未改變檔案內容(『not_modified』)

​ 404:找不到資源(『not_found』)

​ 500:伺服器異常(『server_error』, 『internal_server_error』)

​ cookie是我們在網頁中不可或缺的一部分,我們經常通過cookie來維持使用者的登入狀態,下面我們來獲取一下cookies,事例如下:

當然除了獲取之外,我們也可以加入我們自己的乙個cookie的資訊,事例如下:

​ 很多時候我們在執行爬蟲的時候,因為我們的爬取速度過快或者訪問頻率過高,而被某些**封ip,此時我們就需要更換我們的ip,使用**ip來偽裝我們的主機,繼續進行資料的爬取,那麼requests中我們只需要將我們定義好的**傳給proxies屬性即可更換ip,事例如下:

1.重定向設定

import requests

response = requests.get('', allow_redirects=false)

print(response.text)

2.會話維持

import requests

session = session()

response = session.get('')

print(response.text)

# 如果出現網路問題(例如dns故障,連線被拒絕等),請求將引發connectionerror異常。

# 如果請求超時,timeout則會引發異常。

# 請求顯式引發的所有異常都繼承自 requests.exceptions.requestexception。

import requests

requests.get('', timeout=0.001)

python學習筆記 flask之request

from flask import request coding utf 8 from flask import flask,request def index 訪問上面定義的路徑就是訪問此方法 請求行 print request.method request.method 獲取請求方法 print...

requests http請求庫(基礎)

使用第三方庫 requests 傳送 get 請求,無引數。三種接受響應方式 text 二進位制 json import requests requests 第三方庫 安裝 pip install requests todo 檔名稱千萬不要和 requests 同名 url res requests...

筆記整理 python開發介面測試requests

python開發介面測試 作用python語言實現web api介面測試,常用下面的庫 內建庫 httplib,urllib2 第三方庫 requests python requests庫 特點 簡便易用,功能強大,姐姐我喜歡用這個。請求引數 requests.get url,params xx,h...