Python requests模塊用法詳解
大家好,今天就來(lái)說(shuō)說(shuō)requests的基礎(chǔ)用法。
1.準(zhǔn)備工作
首先呢,我們要確保我們已經(jīng)之前安裝requests庫(kù),如果沒(méi)有安裝,可以自行搜索。
2.實(shí)例引入
requests庫(kù)請(qǐng)求網(wǎng)頁(yè)用到的是get()方法,下面通過(guò)實(shí)例來(lái)看一下。
import requests res = requests.get('https://www.baidu.com/') print(type(res)) print(res) print(res.text) print(res.cookies)
這里我們調(diào)用get()方法實(shí)現(xiàn),得到一個(gè)response對(duì)象,然后分別輸出response的類型,狀態(tài)碼,內(nèi)容以及cookies。
使用get()方法成功實(shí)現(xiàn)一個(gè)get()請(qǐng)求這不算什么,更方便的請(qǐng)求還有其他的。比如post(),put()等等。
3.get()請(qǐng)求
HTTP最常見(jiàn)的請(qǐng)求之一就是GET請(qǐng)求,下面我們首先先來(lái)了解一下利用requests構(gòu)建GET的方法
基本實(shí)例
首先,我們構(gòu)建一個(gè)最簡(jiǎn)單的get請(qǐng)求,請(qǐng)求的鏈接如下,該網(wǎng)站會(huì)判斷如果用戶發(fā)起的的是get請(qǐng)求的話,它就會(huì)返回響應(yīng)的請(qǐng)求信息。
import requests res = requests.get('http://httpbin.org/get') print(res.text)
運(yùn)行的結(jié)果如下:
{
"args": {},
"headers": {
"Accept": "*/*",
"Accept-Encoding": "gzip, deflate",
"Host": "httpbin.org",
"User-Agent": "python-requests/2.27.1",
"X-Amzn-Trace-Id": "Root=1-637ae5d7-35da1bf57b139d152585d12a"
},
"origin": "223.215.67.113",
"url": "http://httpbin.org/get"
}
可以發(fā)現(xiàn),我們成功發(fā)起了get請(qǐng)求,返回結(jié)果中包含請(qǐng)求頭,url,IP等信息。
那么,對(duì)于GET請(qǐng)求,如果我們想要附加額外信息,一般怎么添加呢?比如講,現(xiàn)在想添加兩個(gè)參數(shù),其中name是Tina,age是18。要構(gòu)造這個(gè)請(qǐng)求鏈接,是不是可以直接寫成:
r = requests.get('http://httpbin.org/get?name=Tina&age=18')
這樣也是可以的,我們還可以通過(guò)字典來(lái)構(gòu)造。利用params這個(gè)參數(shù)就好了。
import requests data = { 'name':'Tina', 'age':'18' } res = requests.get('http://httpbin.org/get',params = data) print(res.text)
運(yùn)行結(jié)果如下:
{
"args": {
"age": "18",
"name": "Tina"
},
"headers": {
"Accept": "*/*",
"Accept-Encoding": "gzip, deflate",
"Host": "httpbin.org",
"User-Agent": "python-requests/2.27.1",
"X-Amzn-Trace-Id": "Root=1-637ae902-695483e87b26b3ad49d15df7"
},
"origin": "223.215.67.113",
"url": "http://httpbin.org/get?name=Tina&age=18"
}
通過(guò)運(yùn)行結(jié)果判斷,請(qǐng)求的鏈接自動(dòng)變成了帶有后綴的鏈接。
另外,網(wǎng)頁(yè)返回的類型實(shí)際上是str,但是它是json()格式的,我們可以用json返回一個(gè)字典。如果不是json格式,使用json就會(huì)報(bào)錯(cuò),拋出json.decoder.JSONDecodeError異常。
4.post()請(qǐng)求
上面我們了解了最基本的get請(qǐng)求,另外一種比較常見(jiàn)的請(qǐng)求方式就是post()。使用requests實(shí)現(xiàn)post請(qǐng)求也是非常簡(jiǎn)單,示例如下。
import requests res = requests.post('http://httpbin.org/post') print(res.text)
運(yùn)行之后就會(huì)發(fā)現(xiàn)得到了結(jié)果,就說(shuō)明我們post請(qǐng)求成功。
5.響應(yīng)
發(fā)送請(qǐng)求,之后得到的肯定就是響應(yīng)。除了text,還有狀態(tài)碼,響應(yīng)頭,cookies等等。
到此這篇關(guān)于Python requests模塊用法詳解的文章就介紹到這了,更多相關(guān)Python requests內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
- Python基礎(chǔ)第三方模塊requests openpyxl
- Python網(wǎng)絡(luò)請(qǐng)求模塊urllib與requests使用介紹
- Python用requests模塊實(shí)現(xiàn)動(dòng)態(tài)網(wǎng)頁(yè)爬蟲(chóng)
- Python通過(guò)requests模塊實(shí)現(xiàn)抓取王者榮耀全套皮膚
- Python接口自動(dòng)化之淺析requests模塊post請(qǐng)求
- Python接口自動(dòng)化之淺析requests模塊get請(qǐng)求
- 詳解Python requests模塊
- python 爬蟲(chóng)請(qǐng)求模塊requests詳解
相關(guān)文章
簡(jiǎn)單談?wù)刾ython中的lambda表達(dá)式
Lambda表達(dá)式在Python中經(jīng)常使用到,本文是給大家分享的小編總結(jié)出來(lái)的Lambda表達(dá)式的常用方法。2018-01-01教你用python將數(shù)據(jù)寫入Excel文件中
Python作為一種腳本語(yǔ)言相較于shell具有更強(qiáng)大的文件處理能力,下面這篇文章主要給大家介紹了關(guān)于如何用python將數(shù)據(jù)寫入Excel文件中的相關(guān)資料,文中通過(guò)實(shí)例代碼介紹的非常詳細(xì),需要的朋友可以參考下2022-02-02Python 文件數(shù)據(jù)讀寫的具體實(shí)現(xiàn)
這篇文章主要介紹了Python 文件數(shù)據(jù)讀寫的具體實(shí)現(xiàn),文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2020-01-01Python開(kāi)發(fā)之利用re模塊去除代碼塊注釋
Python的re模塊主要是正則表達(dá)式的操作函數(shù),下面這篇文章主要給大家介紹了關(guān)于Python開(kāi)發(fā)之利用re模塊去除代碼塊注釋的相關(guān)資料,文中通過(guò)實(shí)例代碼介紹的非常詳細(xì),需要的朋友可以參考下2022-11-11用Python畫一個(gè)LinkinPark的logo代碼實(shí)例
這篇文章主要介紹了用Python畫一個(gè)LinkinPark的logo代碼實(shí)例,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下2019-09-09