中文亚洲精品无码_熟女乱子伦免费_人人超碰人人爱国产_亚洲熟妇女综合网

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

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

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

在這里插入圖片描述

文章目錄

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

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

安裝

要在 Python 中使用 requests 庫(kù),首先需要安裝它??梢允褂靡韵轮噶钸M(jìn)行安裝:

pip install requests

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

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

基本用法

測(cè)試網(wǎng)站

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

以下是 httpbin.org 提供的一些常見(jiàn)測(cè)試端點(diǎn):

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

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

發(fā)送GET請(qǐng)求

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

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

在這里插入圖片描述

發(fā)送POST請(qǐng)求

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

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

更多請(qǐng)求

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

請(qǐng)求參數(shù)

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

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

發(fā)送的實(shí)際請(qǐng)求 URL 會(huì)是:

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

請(qǐng)求頭

自定義請(qǐng)求頭可以通過(guò) headers 參數(shù)傳遞。用于設(shè)置 HTTP 請(qǐng)求頭。它用來(lái)傳遞額外的信息給服務(wù)器。可以把它想象成你寫(xiě)信時(shí)附上的說(shuō)明,比如告訴收信人你是誰(shuí)、信的內(nèi)容類型等。

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

其他常用請(qǐng)求屬性

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

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

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

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

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

處理響應(yīng)

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

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

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

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

處理超時(shí)

可以通過(guò) timeout 參數(shù)設(shè)置請(qǐng)求的超時(shí)時(shí)間(單位為秒)。如果請(qǐng)求超時(shí),會(huì)拋出 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庫(kù)發(fā)送HTTP請(qǐng)求時(shí),有可能會(huì)發(fā)生異常情況,例如網(wǎng)絡(luò)錯(cuò)誤、連接超時(shí)等。為了處理這些異常情況,我們可以使用Python的異常處理機(jī)制。requests庫(kù)中定義了多種異常類型,可以用來(lái)捕獲和處理各種HTTP請(qǐng)求相關(guān)的異常情況。

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

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

以下是一個(gè)例子,演示如何使用try-except語(yǔ)句來(lái)捕獲請(qǐng)求可能出現(xiàn)的異常情況:

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

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

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


http://www.risenshineclean.com/news/41623.html

相關(guān)文章:

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