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

收到一個響應對象,其中包含很多信息。 首先,具有用戶名和密碼的鍵和值的表單對象是測試。 然后標頭對象包含一些屬性:Next、JSON、origin 和 URL。
要發(fā)布多部分編碼的文件,請通過使用 post() 方法的文件屬性將文件發(fā)送到服務器來發(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ù)對象并獲得文件對象,文件屬性的值為文件的內容(在工作目錄中創(chuàng)建的 test.txt 文件的內容,即測試文本)。
要在會話中發(fā)出 POST 請求,請將 cookie 設置為 URL,然后再次發(fā)出請求以評估是否設置了 cookie。 當用戶需要在所有請求中發(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。 因此,這證實了在單個請求上設置的 cookie 或其他數(shù)據(jù)不會與其他會話請求一起傳遞。
考慮到 post() 的好處,它比 GET 方法更安全,因為用戶輸入的信息在 URL 查詢字符串或服務器日志中永遠不可見。
我們可以發(fā)送的數(shù)據(jù)量有更大的限制,一個人可以發(fā)送文本或二進制數(shù)據(jù),例如使用 POST 方法上傳文件。
到此這篇關于Python 中如何使用requests模塊發(fā)布表單數(shù)據(jù)的文章就介紹到這了,更多相關Python使用requests模塊發(fā)布表單數(shù)據(jù)內容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關文章希望大家以后多多支持腳本之家!
相關文章
淺談numpy.where() 的用法和np.argsort()的用法說明
這篇文章主要介紹了淺談numpy.where() 的用法和np.argsort()的用法說明,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧2021-05-05
Python實現(xiàn)自動化對Word文檔添加或移除行號
Word文檔中的行號(行編號)功能是對于精細化的文檔編輯以及解析非常有用的功能,添加行號能夠極大地提升文檔的可讀性和定位效率,本文將介紹如何使用Python來實現(xiàn)自動化對Word文檔添加或移除行號,為文檔處理工作帶來便捷,需要的朋友可以參考下2024-07-07

