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模塊是最簡單的,可以編寫強大的涉及GET和POST方法的程序。
requests 庫是 Python 的主要方面之一,用于創(chuàng)建對已定義 URL 的 HTTP 請求。
POST請求方式介紹
萬維網(wǎng) HTTP 支持 POST 請求方法。 在考慮格式時,POST 請求方法請求 Web 服務(wù)器接受請求消息正文中包含的數(shù)據(jù),顯然是存儲它們。
我們經(jīng)常用它來上傳文件或提交最終的網(wǎng)絡(luò)表單。 例如,post()
向指定的 URL 發(fā)送 POST 請求。 當(dāng)我們需要向服務(wù)器發(fā)送一些數(shù)據(jù)時,我們也可以使用它。
- 它對數(shù)據(jù)長度沒有任何限制,根據(jù)需要設(shè)置。
- 它不存在于瀏覽器歷史記錄中。
- 它永遠(yuǎn)不會被緩存。
- 它不能是書簽。
在 Python 中安裝 requests 模塊
可以使用以下命令安裝使用 post()
方法所需的請求模塊:
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 個或多個命名參數(shù)作為以下參數(shù):
參數(shù) | 說明 |
---|---|
url | 請求的URL是一個重要的部分。 |
data | 可選。 字典、元組列表、字節(jié)或文件對象被發(fā)送到指定的 URL。 |
json | 可選。 要定向到指定 URL 的 JSON 對象。 |
files | 可選。 要傳遞到指定 URL 的文件目錄。 |
allow_redirects | 可選。 啟用或禁用重定向的布爾值。 默認(rèn)值為 True,表示允許重定向。 |
auth | 可選。 啟用特定 HTTP 身份驗證的元組。 默認(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 | 可選,一個數(shù)字,指示等待客戶端建立連接和/或發(fā)送響應(yīng)的時間。 默認(rèn)值為無。 這意味著請求將繼續(xù),直到連接關(guān)閉。 |
verify | 一個布爾值或字符串指示,用于驗證/不驗證服務(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)
輸出:
收到一個響應(yīng)對象,其中包含很多信息。 首先,具有用戶名和密碼的鍵和值的表單對象是測試。 然后標(biāo)頭對象包含一些屬性:Next、JSON、origin 和 URL。
要發(fā)布多部分編碼的文件,請通過使用 post() 方法的文件屬性將文件發(fā)送到服務(wù)器來發(fā)出多部分 POST 請求。
import requests files = {'file': open('test.txt', 'rb')} url = 'https://httpbin.org/post' result = requests.post(url, files=files) print(result.text)
輸出:
作為輸出,返回一個空數(shù)據(jù)對象并獲得文件對象,文件屬性的值為文件的內(nèi)容(在工作目錄中創(chuàng)建的 test.txt 文件的內(nèi)容,即測試文本)。
要在會話中發(fā)出 POST 請求,請將 cookie 設(shè)置為 URL,然后再次發(fā)出請求以評估是否設(shè)置了 cookie。 當(dāng)用戶需要在所有請求中發(fā)送相同的數(shù)據(jù)時,會話也很有用。 例如:
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
輸出:
在輸出中,月訪問會話 cookie 隨所有三個請求一起傳遞。 但是年訪問 cookie 僅在第二次請求期間傳遞。
第三個請求中沒有年訪問cookie。 因此,這證實了在單個請求上設(shè)置的 cookie 或其他數(shù)據(jù)不會與其他會話請求一起傳遞。
考慮到 post()
的好處,它比 GET 方法更安全,因為用戶輸入的信息在 URL 查詢字符串或服務(wù)器日志中永遠(yuǎn)不可見。
我們可以發(fā)送的數(shù)據(jù)量有更大的限制,一個人可以發(fā)送文本或二進制數(shù)據(jù),例如使用 POST 方法上傳文件。
到此這篇關(guān)于Python 中如何使用requests模塊發(fā)布表單數(shù)據(jù)的文章就介紹到這了,更多相關(guān)Python使用requests模塊發(fā)布表單數(shù)據(jù)內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
淺談numpy.where() 的用法和np.argsort()的用法說明
這篇文章主要介紹了淺談numpy.where() 的用法和np.argsort()的用法說明,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧2021-05-05Python實現(xiàn)自動化對Word文檔添加或移除行號
Word文檔中的行號(行編號)功能是對于精細(xì)化的文檔編輯以及解析非常有用的功能,添加行號能夠極大地提升文檔的可讀性和定位效率,本文將介紹如何使用Python來實現(xiàn)自動化對Word文檔添加或移除行號,為文檔處理工作帶來便捷,需要的朋友可以參考下2024-07-07