Python?中如何使用requests模塊發(fā)布表單數(shù)據(jù)
本篇文章介紹了 Python requests 模塊,并說明了我們?nèi)绾问褂迷撃K在 Python 中發(fā)布表單數(shù)據(jù)。
使用 requests 模塊在 Python 中發(fā)布表單數(shù)據(jù)
Python 可用于訪問網(wǎng)頁,也可用于向網(wǎng)頁發(fā)布內(nèi)容。
無論是否有httplib、urllib、httplib2等不同的模塊,Python中的requests模塊是最簡單的,可以編寫強(qiáng)大的涉及GET和POST方法的程序。
requests 庫是 Python 的主要方面之一,用于創(chuàng)建對(duì)已定義 URL 的 HTTP 請(qǐng)求。
POST請(qǐng)求方式介紹
萬維網(wǎng) HTTP 支持 POST 請(qǐng)求方法。 在考慮格式時(shí),POST 請(qǐng)求方法請(qǐng)求 Web 服務(wù)器接受請(qǐng)求消息正文中包含的數(shù)據(jù),顯然是存儲(chǔ)它們。
我們經(jīng)常用它來上傳文件或提交最終的網(wǎng)絡(luò)表單。 例如,post() 向指定的 URL 發(fā)送 POST 請(qǐng)求。 當(dāng)我們需要向服務(wù)器發(fā)送一些數(shù)據(jù)時(shí),我們也可以使用它。
- 它對(duì)數(shù)據(jù)長度沒有任何限制,根據(jù)需要設(shè)置。
- 它不存在于瀏覽器歷史記錄中。
- 它永遠(yuǎn)不會(huì)被緩存。
- 它不能是書簽。
在 Python 中安裝 requests 模塊
可以使用以下命令安裝使用 post() 方法所需的請(qǐng)求模塊:
python -m pip install requests
或者
pip install requests
如果 pipenv 管理 Python 包,我們可以使用以下命令。
pipenv install requests
安裝 requests 模塊后,可以按如下方式在程序中導(dǎo)入和使用它:
import requests
現(xiàn)在,如何使用 requests.post() 方法? 它的語法是什么? 下面一起來了解一下吧。
語法:
requests.post(url, data={key: value}, json={key: value}, args)在這里,args 等于 0 個(gè)或多個(gè)命名參數(shù)作為以下參數(shù):
| 參數(shù) | 說明 |
|---|---|
| url | 請(qǐng)求的URL是一個(gè)重要的部分。 |
| data | 可選。 字典、元組列表、字節(jié)或文件對(duì)象被發(fā)送到指定的 URL。 |
| json | 可選。 要定向到指定 URL 的 JSON 對(duì)象。 |
| files | 可選。 要傳遞到指定 URL 的文件目錄。 |
| allow_redirects | 可選。 啟用或禁用重定向的布爾值。 默認(rèn)值為 True,表示允許重定向。 |
| auth | 可選。 啟用特定 HTTP 身份驗(yàn)證的元組。 默認(rèn)值為無。 |
| cert | 指定證書文件或密鑰的字符串或元組。 可選,默認(rèn)值為 None。 |
| cookies | 發(fā)送到指定 URL 的 Cookie 字典,可選,默認(rèn)值為 None。 |
| headers | 可選,默認(rèn)無,要發(fā)送到定義的 URL 的 HTTP 標(biāo)頭字典。 |
| proxies | 可選,默認(rèn)無,代理 URL 的協(xié)議字典。 |
| stream | 響應(yīng)的布爾值指示,無論是 False(已下載)還是 True(流式傳輸)。 可選,默認(rèn)為 False。 |
| timeout | 可選,一個(gè)數(shù)字,指示等待客戶端建立連接和/或發(fā)送響應(yīng)的時(shí)間。 默認(rèn)值為無。 這意味著請(qǐng)求將繼續(xù),直到連接關(guān)閉。 |
| verify | 一個(gè)布爾值或字符串指示,用于驗(yàn)證/不驗(yàn)證服務(wù)器的 TLS 證書。 選修的。 默認(rèn)值是true。 |
post() 方法的應(yīng)用
下面的代碼圍欄演示了 post() 方法的用法,用戶通過 post() 方法將數(shù)據(jù)發(fā)布到 httpbin 網(wǎng)站,并獲得有關(guān)發(fā)布方式的響應(yīng)。
import requests
values = {'username':'user','password':'test'}
result = requests.post('https://httpbin.org/post',data = values)
print(result.text)輸出:

收到一個(gè)響應(yīng)對(duì)象,其中包含很多信息。 首先,具有用戶名和密碼的鍵和值的表單對(duì)象是測(cè)試。 然后標(biāo)頭對(duì)象包含一些屬性:Next、JSON、origin 和 URL。
要發(fā)布多部分編碼的文件,請(qǐng)通過使用 post() 方法的文件屬性將文件發(fā)送到服務(wù)器來發(fā)出多部分 POST 請(qǐng)求。
import requests
files = {'file': open('test.txt', 'rb')}
url = 'https://httpbin.org/post'
result = requests.post(url, files=files)
print(result.text)輸出:

作為輸出,返回一個(gè)空數(shù)據(jù)對(duì)象并獲得文件對(duì)象,文件屬性的值為文件的內(nèi)容(在工作目錄中創(chuàng)建的 test.txt 文件的內(nèi)容,即測(cè)試文本)。
要在會(huì)話中發(fā)出 POST 請(qǐng)求,請(qǐng)將 cookie 設(shè)置為 URL,然后再次發(fā)出請(qǐng)求以評(píng)估是否設(shè)置了 cookie。 當(dāng)用戶需要在所有請(qǐng)求中發(fā)送相同的數(shù)據(jù)時(shí),會(huì)話也很有用。 例如:
import requests
s = requests.Session()
s.cookies.update({'month-visit': 'July'})
request01 = s.get('http://httpbin.org/cookies')
print(request01.text)
# outputs details on the "month-visit" cookie
request02 = s.get('http://httpbin.org/cookies', cookies={'year-visit': '2022'})
print(request02.text)
# outputs details on "month-visit" and "year-visit" cookie
request03 = s.get('http://httpbin.org/cookies')
print(request03.text)
# outputs details on the "month-visit" cookie輸出:

在輸出中,月訪問會(huì)話 cookie 隨所有三個(gè)請(qǐng)求一起傳遞。 但是年訪問 cookie 僅在第二次請(qǐng)求期間傳遞。
第三個(gè)請(qǐng)求中沒有年訪問cookie。 因此,這證實(shí)了在單個(gè)請(qǐng)求上設(shè)置的 cookie 或其他數(shù)據(jù)不會(huì)與其他會(huì)話請(qǐng)求一起傳遞。
考慮到 post() 的好處,它比 GET 方法更安全,因?yàn)橛脩糨斎氲男畔⒃?URL 查詢字符串或服務(wù)器日志中永遠(yuǎn)不可見。
我們可以發(fā)送的數(shù)據(jù)量有更大的限制,一個(gè)人可以發(fā)送文本或二進(jìn)制數(shù)據(jù),例如使用 POST 方法上傳文件。
到此這篇關(guān)于Python 中如何使用requests模塊發(fā)布表單數(shù)據(jù)的文章就介紹到這了,更多相關(guān)Python使用requests模塊發(fā)布表單數(shù)據(jù)內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
30道python自動(dòng)化測(cè)試面試題與答案匯總
對(duì)于機(jī)器學(xué)習(xí)算法工程師而言,Python是不可或缺的語言,它的優(yōu)美與簡潔令人無法自拔,下面這篇文章主要給大家介紹了關(guān)于30道python自動(dòng)化測(cè)試面試題與答案匯總的相關(guān)資料,需要的朋友可以參考下2023-03-03
淺談numpy.where() 的用法和np.argsort()的用法說明
這篇文章主要介紹了淺談numpy.where() 的用法和np.argsort()的用法說明,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過來看看吧2021-05-05
Python實(shí)現(xiàn)自動(dòng)化對(duì)Word文檔添加或移除行號(hào)
Word文檔中的行號(hào)(行編號(hào))功能是對(duì)于精細(xì)化的文檔編輯以及解析非常有用的功能,添加行號(hào)能夠極大地提升文檔的可讀性和定位效率,本文將介紹如何使用Python來實(shí)現(xiàn)自動(dòng)化對(duì)Word文檔添加或移除行號(hào),為文檔處理工作帶來便捷,需要的朋友可以參考下2024-07-07

