国产亚洲精品福利在线无卡一,国产精久久一区二区三区,亚洲精品无码国模,精品久久久久久无码专区不卡

當(dāng)前位置: 首頁 > news >正文

合肥快速做網(wǎng)站百度推廣登錄官網(wǎng)

合肥快速做網(wǎng)站,百度推廣登錄官網(wǎng),網(wǎng)站公司模板,青州哪里做網(wǎng)站做得好文章目錄 安裝基本用法測試網(wǎng)站發(fā)送GET請求發(fā)送POST請求更多請求請求參數(shù)請求頭其他常用請求屬性處理響應(yīng)響應(yīng)狀態(tài)碼響應(yīng)內(nèi)容 處理超時處理異常 requests 是一個非常流行的 Python HTTP 庫,用于發(fā)送所有類型的 HTTP 請求。它簡潔易用,能夠處理復(fù)雜的請求…

在這里插入圖片描述

文章目錄

  • 安裝
  • 基本用法
    • 測試網(wǎng)站
    • 發(fā)送GET請求
    • 發(fā)送POST請求
    • 更多請求
    • 請求參數(shù)
    • 請求頭
    • 其他常用請求屬性
    • 處理響應(yīng)
      • 響應(yīng)狀態(tài)碼
      • 響應(yīng)內(nèi)容
    • 處理超時
    • 處理異常

requests 是一個非常流行的 Python HTTP 庫,用于發(fā)送所有類型的 HTTP 請求。它簡潔易用,能夠處理復(fù)雜的請求場景,如保持會話、處理 cookies、上傳文件等。本篇只對GET和POST做簡單說明,其他請求類似。

安裝

要在 Python 中使用 requests 庫,首先需要安裝它。可以使用以下指令進行安裝:

pip install requests

如果遇到網(wǎng)絡(luò)環(huán)境導(dǎo)致下載失敗,可以使用國內(nèi)第三方鏡像站進行安裝,這里使用的是阿里云鏡像:

pip install requests -i https://mirrors.aliyun.com/pypi/simple

基本用法

測試網(wǎng)站

在接下來的代碼示例中,會使用到 httpbin.org 工具。httpbin.org 是一個專門用于測試 HTTP 請求的服務(wù)網(wǎng)站。這個網(wǎng)站由 Kenneth Reitz 創(chuàng)建,目的是為開發(fā)者提供一個簡單的工具來測試和調(diào)試各種 HTTP 請求。你可以使用它來發(fā)送各種類型的 HTTP 請求(如 GET、POST、PUT、DELETE 等),并查看服務(wù)器返回的內(nèi)容。

以下是 httpbin.org 提供的一些常見測試端點:

  • /get:用于測試 GET 請求。它會返回你發(fā)送的查詢參數(shù)、請求頭等信息。
  • /post:用于測試 POST 請求。你可以發(fā)送表單數(shù)據(jù)或 JSON 數(shù)據(jù),并查看服務(wù)器返回的數(shù)據(jù)。
  • /status/:code:用于測試不同的 HTTP 狀態(tài)碼。例如,/status/404 會返回一個 404 狀態(tài)碼。
  • /redirect/:n:用于測試重定向。/redirect/3 會重定向 3 次。
  • /cookies 和 /cookies/set:用于測試 cookie 的處理。
  • /delay/:seconds:用于測試請求延遲。它會延遲指定的秒數(shù)后再響應(yīng)。
  • /basic-auth/:user/:passwd:用于測試基本 HTTP 身份驗證。

當(dāng)你在開發(fā)過程中需要測試各種 HTTP 行為時。例如,你可以使用它來驗證你的客戶端是否正確處理重定向、身份驗證、請求頭、響應(yīng)格式等。

發(fā)送GET請求

GET 請求用于從服務(wù)器獲取數(shù)據(jù)。最簡單的形式如下:

import requestsresponse = requests.get('http://httpbin.org/get')
print(response.status_code)  # 輸出狀態(tài)碼,例如 200
print(response.text)  # 輸出響應(yīng)內(nèi)容

在這里插入圖片描述

發(fā)送POST請求

POST 請求通常用于提交數(shù)據(jù)到服務(wù)器,例如提交表單數(shù)據(jù)。

import requestspayload = {'key1': 'value1', 'key2': 'value2'}
res = requests.post(url="http://httpbin.org/post",data=payload)
print(res.json())

更多請求

  1. requests.get(url, params=None, **kwargs): 發(fā)送一個HTTP GET請求,并返回一個Response對象??梢允褂胮arams參數(shù)傳遞查詢參數(shù),也可以使用**kwargs參數(shù)傳遞其他的請求參數(shù),如headers、timeout等。
  2. requests.post(url, data=None, json=None, **kwargs): 發(fā)送一個HTTP POST請求,并返回一個Response對象??梢允褂胐ata參數(shù)傳遞表單數(shù)據(jù),也可以使用json參數(shù)傳遞JSON數(shù)據(jù),還可以使用**kwargs參數(shù)傳遞其他的請求參數(shù),如headers、timeout等。
  3. requests.put(url, data=None, **kwargs): 發(fā)送一個HTTP PUT請求,并返回一個Response對象??梢允褂胐ata參數(shù)傳遞請求數(shù)據(jù),也可以使用**kwargs參數(shù)傳遞其他的請求參數(shù),如headers、timeout等。
  4. requests.delete(url, **kwargs): 發(fā)送一個HTTP DELETE請求,并返回一個Response對象。可以使用**kwargs參數(shù)傳遞請求參數(shù),如headers、timeout等。
  5. requests.head(url, **kwargs): 發(fā)送一個HTTP HEAD請求,并返回一個Response對象??梢允褂?*kwargs參數(shù)傳遞請求參數(shù),如headers、timeout等。
  6. requests.options(url, **kwargs): 發(fā)送一個HTTP OPTIONS請求,并返回一個Response對象??梢允褂?*kwargs參數(shù)傳遞請求參數(shù),如headers、timeout等。
  7. requests.exceptions: requests庫的異常類,如Timeout、ConnectionError等,可以用于捕獲請求過程中可能出現(xiàn)的異常情況。

請求參數(shù)

可以通過 params 參數(shù)將查詢參數(shù)添加到 URL 中,params 用于添加 URL 查詢參數(shù)。這些參數(shù)會附加在 URL 后面,格式為 key=value,多個參數(shù)之間用 & 分隔。

params = {'key1': 'value1', 'key2': 'value2'}
response = requests.get(url, params=params)

發(fā)送的實際請求 URL 會是:

https://api.example.com/data?key1=value1&key2=value2

請求頭

自定義請求頭可以通過 headers 參數(shù)傳遞。用于設(shè)置 HTTP 請求頭。它用來傳遞額外的信息給服務(wù)器??梢园阉胂蟪赡銓懶艜r附上的說明,比如告訴收信人你是誰、信的內(nèi)容類型等。

import requestsheaders = {'User-Agent': 'my-app/0.0.1'}
response = requests.get('https://httpbin.org/get', headers=headers)
print(response.text)

其他常用請求屬性

  • timeout :用于設(shè)置請求的超時時間,單位是秒。如果請求超過指定時間未完成,會拋出requests.exceptions.Timeout異常。

  • auth:用于處理 HTTP 身份驗證。比如,當(dāng)你訪問某個網(wǎng)頁時,可能會彈出一個窗口要求輸入用戶名和密碼,這就是一種基本的 HTTP 身份驗證。假設(shè)你要訪問一個需要登錄的 API 或網(wǎng)頁,你需要提供正確的用戶名和密碼,服務(wù)器才會允許你訪問。

    from requests.auth import HTTPBasicAuth
    response = requests.get(url, auth=HTTPBasicAuth('user', 'pass'))
    

    HTTPBasicAuth 是處理基本身份驗證的簡單方法,特別適合用來訪問那些需要用戶名和密碼的簡單 API 或網(wǎng)頁。

  • cookies:用于發(fā)送 HTTP cookies,可以是一個字典。是服務(wù)器與客戶端之間交換的小型數(shù)據(jù),用于記住用戶的信息和狀態(tài)。

處理響應(yīng)

請求會返回一個 Response 對象,該對象包含了服務(wù)器返回的數(shù)據(jù)和狀態(tài)信息。

響應(yīng)狀態(tài)碼

status_code屬性用于獲取 HTTP 響應(yīng)狀態(tài)碼,如 200(成功)、404(未找到)、500(服務(wù)器錯誤)等:

if response.status_code == 200:print('Success!')
elif response.status_code == 404:print('Not Found.')

響應(yīng)內(nèi)容

requests 提供了多種方式獲取響應(yīng)內(nèi)容:

  • text:返回響應(yīng)內(nèi)容的字符串形式。它自動將響應(yīng)的字節(jié)數(shù)據(jù)解碼為 Unicode 字符串,使用的是 HTTP 響應(yīng)頭中指定的字符編碼(通常是 UTF-8)。
  • content:返回響應(yīng)內(nèi)容的二進制形式。不進行任何解碼。這對于處理非文本內(nèi)容(如圖片、音頻文件、視頻文件、壓縮包等)非常有用。適用于處理二進制文件,如圖片、音頻文件、PDF 文檔等。
  • json():如果響應(yīng)內(nèi)容是 JSON 格式,可以使用此方法將其解析為 Python 字典。
  • url:返回請求的最終 URL(包括重定向后的 URL)
  • headers:返回一個包含響應(yīng)頭的字典。
  • cookies:返回服務(wù)器在響應(yīng)中設(shè)置的 cookies。

處理超時

可以通過 timeout 參數(shù)設(shè)置請求的超時時間(單位為秒)。如果請求超時,會拋出 requests.exceptions.Timeout 異常。

try:response = requests.get('https://httpbin.org/delay/10', timeout=2)
except requests.exceptions.Timeout:print('The request timed out')

處理異常

當(dāng)使用requests庫發(fā)送HTTP請求時,有可能會發(fā)生異常情況,例如網(wǎng)絡(luò)錯誤、連接超時等。為了處理這些異常情況,我們可以使用Python的異常處理機制。requests庫中定義了多種異常類型,可以用來捕獲和處理各種HTTP請求相關(guān)的異常情況。

在使用requests庫時,我們應(yīng)該始終使用try-except語句來捕獲和處理可能發(fā)生的異常。以下是一些常見的異常類型:

  • requests.exceptions.RequestException: 所有異常的基類,可以用來捕獲所有的異常情況。
  • requests.exceptions.Timeout: 當(dāng)請求超時時,拋出此異常。
  • requests.exceptions.Timeout: 當(dāng)請求超時時,拋出此異常。
  • requests.exceptions.HTTPError: 當(dāng)HTTP請求返回錯誤狀態(tài)碼時,拋出此異常。

以下是一個例子,演示如何使用try-except語句來捕獲請求可能出現(xiàn)的異常情況:

import requeststry:r = requests.get('https://www.baidu.com/', timeout=3)r.raise_for_status()
except requests.exceptions.Timeout as e:print('請求超時:', e)
except requests.exceptions.ConnectionError as e:print('連接錯誤:', e)
except requests.exceptions.HTTPError as e:print('HTTP錯誤:', e)
except requests.exceptions.RequestException as e:print('其他異常:', e)

在上述代碼中,我們首先使用try語句來執(zhí)行requests.get()方法,如果發(fā)生異常,則會跳轉(zhuǎn)到相應(yīng)的except塊進行處理。如果請求超時、連接錯誤或者HTTP錯誤,將會拋出相應(yīng)的異常,并且打印相應(yīng)的錯誤信息。如果發(fā)生其他異常情況,則會拋出requests.exceptions.RequestException異常,并打印相應(yīng)的錯誤信息。

通過使用異常處理機制,我們可以有效地處理請求中可能出現(xiàn)的各種異常情況,以確保我們的程序能夠在不穩(wěn)定的網(wǎng)絡(luò)環(huán)境中穩(wěn)定地運行。


http://aloenet.com.cn/news/41623.html

相關(guān)文章:

  • 網(wǎng)站批量發(fā)布百度不收錄網(wǎng)站怎么辦
  • 化工網(wǎng)站制作圖片優(yōu)化是什么意思
  • 策劃會展網(wǎng)站建設(shè)論壇推廣軟件
  • 做電商網(wǎng)站的公司杭州做seo的公司
  • 北京網(wǎng)站制作應(yīng)用拓客渠道有哪些
  • 效果圖制作網(wǎng)站有哪些網(wǎng)站建設(shè)公司哪家好?該如何選擇
  • 河曲縣城鄉(xiāng)建設(shè)管理局網(wǎng)站seo收錄排名
  • 專業(yè)的模板建站企業(yè)免費推廣網(wǎng)站排名
  • 如何進行網(wǎng)站運營與規(guī)劃百度seo關(guān)鍵詞外包
  • 蘇州高端網(wǎng)站建設(shè)開發(fā)seo管理系統(tǒng)
  • wordpress hook 列表武漢seo網(wǎng)站管理
  • wordpress 渲染html石家莊關(guān)鍵詞優(yōu)化平臺
  • 大石橋網(wǎng)站地推app接任務(wù)平臺
  • 湛江網(wǎng)站建設(shè)外包武漢百度seo排名
  • 成都網(wǎng)站維護公司百度營銷推廣官網(wǎng)
  • 能24小時掛機的云電腦網(wǎng)站優(yōu)化關(guān)鍵詞價格
  • 數(shù)字化文化館網(wǎng)站建設(shè)系統(tǒng)優(yōu)化助手
  • 環(huán)境保護局網(wǎng)站管理制度建設(shè)磁力搜索引擎下載
  • 網(wǎng)站seo應(yīng)用微信營銷軟件排行榜
  • 免費python在線正常網(wǎng)站識圖
  • 建設(shè)網(wǎng)站網(wǎng)站名推廣軟文300字
  • 南昌加盟網(wǎng)站建設(shè)免費發(fā)布信息的平臺
  • 在線做春節(jié)網(wǎng)站百度廣告銷售
  • 在線制作logo圖標(biāo)軟件seo服務(wù)外包報價
  • 重慶建工建設(shè)工程信息網(wǎng)關(guān)鍵詞排名優(yōu)化易下拉排名
  • 網(wǎng)站管理的內(nèi)容接單平臺
  • 常州網(wǎng)站價格免費留電話的廣告
  • 零食b2c網(wǎng)站濟南網(wǎng)絡(luò)優(yōu)化哪家專業(yè)
  • 請人做彩票網(wǎng)站多少錢b2b電商平臺有哪些
  • 企業(yè)網(wǎng)站html源碼網(wǎng)站排名優(yōu)化工具