首頁 > 軟體

Python中requests庫的基本概念與具體使用方法

2022-08-11 14:02:10

一、 基本概念

1、 簡介

requests 模組是 python 基於 urllib,採用 Apache2 Licensed 開源協定的 HTTP 庫。它比 urllib 更加方便,可以節約我們大量的工作,完全滿足 HTTP 測試需求。Requests 的哲學是以 PEP 20 的習語為中心開發的,所以它比 urllib 更加 Pythoner

2、 獲取

通過 pip install requests 安裝 requests 庫

導包:

import requests

3、 http 協定

http ,超文字傳輸協定,是網際網路上應用最為廣泛的一種網路協定。所有的WWW檔案都必須遵守這個標準。設計HTTP最初的目的是為了提供一種釋出和接收HTML頁面的方法,HTTP是一種基於"請求與響應"模式的、無狀態的應用層協定。HTTP協定採用URL作為定位網路資源的的識別符號

3.1 URL

統一資源定位符是網際網路上標準資源地址。網際網路上的每一個檔案都有一個唯一的 URL,它包含的資訊指出檔案的位置以及瀏覽器應該怎麼處理它

URL 的一般語法格式為:

protocol://host[:port]/path/[?query]#fragment
http://www.itcast.cn/index.html?name=andy&age=18#link
組成說明
protocol通訊協定,常用:http、https 等
host主機(域名)
port埠號,可選,省略時候使用方案的預設埠,如:http的預設埠為80
path路徑,由零或多個 ‘/’ 符號隔開的字串,一般用來表示主機上的一個目錄或檔案地址
query引數,以鍵值對的形式通過 & 來連線
fragment片段,# 後面內容常見於連結 錨點

url是通過HTTP協定存取資源的的Internet路徑,一個URL對應一個資料資源

3.2 常用 http 請求方法

方法說明
GET請求獲取URL位置的資源
HEAD請求獲取URL位置資源的響應訊息報告,即獲得資源的頭部資訊
POST請求向URL位置的資源後附加新的訊息
PUT請求向URL位置儲存一個資源,覆蓋原URL位置的資源
PATCH請求區域性更新URL位置的資源,即改變該處資源的部分內容
DELETE請求刪除URL位置儲存的資源

GET,HEAD是從伺服器獲取資訊到本地,PUT,POST,PATCH,DELETE是從本地向伺服器提交資訊。通過URL和命令管理資源,操作獨立無狀態,網路通道及伺服器成了黑盒子

二、 使用方法

1、 基本語法

requests 庫中的方法

方法說明
requsts.requst()構造一個請求,最基本的方法,是下面方法的支撐
requsts.get()獲取網頁,對應HTTP中的GET方法
requsts.post()向網頁提交資訊,對應HTTP中的POST方法
requsts.head()獲取html網頁的頭資訊,對應HTTP中的HEAD方法
requsts.put()向html提交put方法,對應HTTP中的PUT方法
requsts.patch()向html網頁提交區域性請求修改的的請求,對應HTTP中的PATCH方法
requsts.delete()向html提交刪除請求,對應HTTP中的DELETE方法

主要使用 get 和 post 方法

2、 具體使用方法

2.1 get

2.1.1 基本語法

resp = requests.get(url="http://www.baidu.com")
print(resp) 

resp 是一個Response物件,一個包含伺服器資源的物件

2.1.2 常用引數

引數型別作用
params字典url為基準的url地址,不包含查詢引數;該方法會自動對params字典編碼,然後和url拼接
url字串requests 發起請求的地址
headers字典請求頭,傳送請求的過程中請求的附加內容攜帶著一些必要的引數
cookies字典攜帶登入狀態
proxies字典用來設定代理 ip 伺服器
timeout整型用於設定超時時間, 單位為秒

2.2 post

2.2.1 基本語法

word = input("please input a word")
url = "https://fanyi.baidu.com/sug"
data = {  
    "kw": word,
}
headers = {
    'User-Agent': "Mozilla / 5.0(Windows NT 10.0;Win64;x64) AppleWebKit / 537.36(KHTML, likeGecko) Chrome / 96.0.4664 .93 Safari / 537.36",
}
resp = requests.get(url=url, data=data, headers=headers)
print(resp.json())

2.2.2 常用引數

引數型別作用
data字典作為向伺服器提供或提交資源時提交,主要用於 post 請求
json字典json格式的資料, json合適在相關的html

注意:

  • data 和 params 的區別是: data提交的資料並不放在url連結裡, 而是放在url連結對應位置的地方作為資料來儲存
  • data 和 json 的作用類似,適用方法相同
  • get 裡面的引數大部分也適用

2.3 response

屬性說明
resp.status_codehttp請求的返回狀態,若為200則表示請求成功。
resp.raise_for_status()該語句在方法內部判斷resp.status_code是否等於200,如果不等於,則丟擲異常
resp.texthttp響應內容的字串形式,即返回的頁面內容
resp.encoding從http header 中猜測的相應內容編碼方式
resp.apparent_encoding從內容中分析出的響應內容編碼方式(備選編碼方式)
resp.contenthttp響應內容的二進位制形式
resp.json()得到對應的 json 格式的資料,類似於字典

2.4 head

2.4.1 基本語法

url = "http://www.baidu.com"
headers = {
    'User-Agent': "Mozilla / 5.0(Windows NT 10.0;Win64;x64) AppleWebKit / 537.36(KHTML, likeGecko) Chrome / 96.0.4664 .93 Safari / 537.36",
}
resp = requests.head(url=url)
print(resp.headers)  

resp.headers 方法反饋頭部內容,很少網路流量獲得概要資訊

2.5 put

python介面自動化

  • put請求的作用:更新資源

其語法和 post 請求的語法類似

put 和 post 區別:

  • 新建一條記錄的話就用post
  • POST 方法被用於請求源伺服器接受請求中的實體作為請求資源的一個新的從屬物
  • 更新一條記錄的話就用put
  • PUT方法請求伺服器去把請求裡的實體儲存在請求URI標識下

總結

到此這篇關於Python中requests庫的基本概念與具體使用方法的文章就介紹到這了,更多相關Python中requests庫內容請搜尋it145.com以前的文章或繼續瀏覽下面的相關文章希望大家以後多多支援it145.com!


IT145.com E-mail:sddin#qq.com