Python?中如何使用requests模塊發(fā)布表單數(shù)據(jù)
本篇文章介紹了 Python requests 模塊,并說(shuō)明了我們?nèi)绾问褂迷撃K在 Python 中發(fā)布表單數(shù)據(jù)。
使用 requests 模塊在 Python 中發(fā)布表單數(shù)據(jù)
Python 可用于訪問(wèn)網(wǎng)頁(yè),也可用于向網(wǎng)頁(yè)發(fā)布內(nèi)容。
無(wú)論是否有httplib、urllib、httplib2等不同的模塊,Python中的requests模塊是最簡(jiǎn)單的,可以編寫(xiě)強(qiáng)大的涉及GET和POST方法的程序。
requests 庫(kù)是 Python 的主要方面之一,用于創(chuàng)建對(duì)已定義 URL 的 HTTP 請(qǐng)求。
POST請(qǐng)求方式介紹
萬(wàn)維網(wǎng) HTTP 支持 POST 請(qǐng)求方法。 在考慮格式時(shí),POST 請(qǐng)求方法請(qǐng)求 Web 服務(wù)器接受請(qǐng)求消息正文中包含的數(shù)據(jù),顯然是存儲(chǔ)它們。
我們經(jīng)常用它來(lái)上傳文件或提交最終的網(wǎng)絡(luò)表單。 例如,post()
向指定的 URL 發(fā)送 POST 請(qǐng)求。 當(dāng)我們需要向服務(wù)器發(fā)送一些數(shù)據(jù)時(shí),我們也可以使用它。
- 它對(duì)數(shù)據(jù)長(zhǎng)度沒(méi)有任何限制,根據(jù)需要設(shè)置。
- 它不存在于瀏覽器歷史記錄中。
- 它永遠(yuǎn)不會(huì)被緩存。
- 它不能是書(shū)簽。
在 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()
方法? 它的語(yǔ)法是什么? 下面一起來(lái)了解一下吧。
語(yǔ)法:
requests.post(url, data={key: value}, json={key: value}, args)
在這里,args 等于 0 個(gè)或多個(gè)命名參數(shù)作為以下參數(shù):
參數(shù) | 說(shuō)明 |
---|---|
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)值為無(wú)。 |
cert | 指定證書(shū)文件或密鑰的字符串或元組。 可選,默認(rèn)值為 None。 |
cookies | 發(fā)送到指定 URL 的 Cookie 字典,可選,默認(rèn)值為 None。 |
headers | 可選,默認(rèn)無(wú),要發(fā)送到定義的 URL 的 HTTP 標(biāo)頭字典。 |
proxies | 可選,默認(rèn)無(wú),代理 URL 的協(xié)議字典。 |
stream | 響應(yīng)的布爾值指示,無(wú)論是 False(已下載)還是 True(流式傳輸)。 可選,默認(rèn)為 False。 |
timeout | 可選,一個(gè)數(shù)字,指示等待客戶(hù)端建立連接和/或發(fā)送響應(yīng)的時(shí)間。 默認(rèn)值為無(wú)。 這意味著請(qǐng)求將繼續(xù),直到連接關(guān)閉。 |
verify | 一個(gè)布爾值或字符串指示,用于驗(yàn)證/不驗(yàn)證服務(wù)器的 TLS 證書(shū)。 選修的。 默認(rèn)值是true。 |
post() 方法的應(yīng)用
下面的代碼圍欄演示了 post()
方法的用法,用戶(hù)通過(guò) 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ì)象,其中包含很多信息。 首先,具有用戶(hù)名和密碼的鍵和值的表單對(duì)象是測(cè)試。 然后標(biāo)頭對(duì)象包含一些屬性:Next、JSON、origin 和 URL。
要發(fā)布多部分編碼的文件,請(qǐng)通過(guò)使用 post() 方法的文件屬性將文件發(fā)送到服務(wù)器來(lái)發(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)用戶(hù)需要在所有請(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
輸出:
在輸出中,月訪問(wèn)會(huì)話 cookie 隨所有三個(gè)請(qǐng)求一起傳遞。 但是年訪問(wèn) cookie 僅在第二次請(qǐng)求期間傳遞。
第三個(gè)請(qǐng)求中沒(méi)有年訪問(wèn)cookie。 因此,這證實(shí)了在單個(gè)請(qǐng)求上設(shè)置的 cookie 或其他數(shù)據(jù)不會(huì)與其他會(huì)話請(qǐng)求一起傳遞。
考慮到 post()
的好處,它比 GET 方法更安全,因?yàn)橛脩?hù)輸入的信息在 URL 查詢(xún)字符串或服務(wù)器日志中永遠(yuǎn)不可見(jià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ǔ)言,它的優(yōu)美與簡(jiǎn)潔令人無(wú)法自拔,下面這篇文章主要給大家介紹了關(guān)于30道python自動(dòng)化測(cè)試面試題與答案匯總的相關(guān)資料,需要的朋友可以參考下2023-03-03淺談numpy.where() 的用法和np.argsort()的用法說(shuō)明
這篇文章主要介紹了淺談numpy.where() 的用法和np.argsort()的用法說(shuō)明,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧2021-05-05Python實(shí)現(xiàn)自動(dòng)化對(duì)Word文檔添加或移除行號(hào)
Word文檔中的行號(hào)(行編號(hào))功能是對(duì)于精細(xì)化的文檔編輯以及解析非常有用的功能,添加行號(hào)能夠極大地提升文檔的可讀性和定位效率,本文將介紹如何使用Python來(lái)實(shí)現(xiàn)自動(dòng)化對(duì)Word文檔添加或移除行號(hào),為文檔處理工作帶來(lái)便捷,需要的朋友可以參考下2024-07-07