Python之 requests的使用(一)
?? requests的使用(一)
大家好,今天就來說說requests的基礎(chǔ)用法。requests是一個很實用的Python HTTP客戶端庫,爬蟲和測試服務(wù)器響應(yīng)數(shù)據(jù)時經(jīng)常會用到,requests是Python語言的第三方的庫,專門用于發(fā)送HTTP請求,使用起來比urllib簡潔很多。
??1.準(zhǔn)備工作
首先呢,我們要確保我們已經(jīng)之前安裝requests庫,如果沒有安裝,按照下面步驟按照庫。
?pip 安裝
無論是 Windows、Linux 還是 Mac,都可以通過 pip 這個包管理工具來安裝。
在命令行下運(yùn)行如下命令即可完成 requests 庫的安裝:
pip3 install requests
這是最簡單的安裝方式,推薦此種方法安裝。
?驗證安裝
為了驗證庫是否已經(jīng)安裝成功,可以在命令行下測試一下:
import requests res = requests.get('https://www.baidu.com/') print(res)
輸入如上內(nèi)容,如果什么錯誤提示也沒有,那么就證明我們已經(jīng)成功安裝了 requests。
??2.實例引入
requests庫請求網(wǎng)頁用到的是get()方法,下面通過實例來看一下。
import requests res = requests.get('https://www.baidu.com/') print(type(res)) print(res) print(res.text) print(res.cookies)
這里我們調(diào)用get()方法實現(xiàn),得到一個response對象,然后分別輸出response的類型,狀態(tài)碼,內(nèi)容以及cookies。
使用get()方法成功實現(xiàn)一個get()請求這不算什么,更方便的請求還有其他的。比如post(),put()等等。
??3.get()請求
HTTP最常見的請求之一就是GET請求,下面我們首先先來了解一下利用requests構(gòu)建GET的方法
?基本實例
首先,我們構(gòu)建一個最簡單的get請求,請求的鏈接如下,該網(wǎng)站會判斷如果用戶發(fā)起的的是get請求的話,它就會返回響應(yī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請求,返回結(jié)果中包含請求頭,url,IP等信息。
那么,對于GET請求,如果我們想要附加額外信息,一般怎么添加呢?比如講,現(xiàn)在想添加兩個參數(shù),其中name是Tina,age是18。要構(gòu)造這個請求鏈接,是不是可以直接寫成:
r = requests.get('http://httpbin.org/get?name=Tina&age=18')
這樣也是可以的,我們還可以通過字典來構(gòu)造。利用params這個參數(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" }
通過運(yùn)行結(jié)果判斷,請求的鏈接自動變成了帶有后綴的鏈接。
另外,網(wǎng)頁返回的類型實際上是str,但是它是json()格式的,我們可以用json返回一個字典。如果不是json格式,使用json就會報錯,拋出json.decoder.JSONDecodeError異常。
??4.post()請求
上面我們了解了最基本的get請求,另外一種比較常見的請求方式就是post()。使用requests實現(xiàn)post請求也是非常簡單,示例如下。
import requests res = requests.post('http://httpbin.org/post') print(res.text)
運(yùn)行之后就會發(fā)現(xiàn)得到了結(jié)果,就說明我們post請求成功。
??5.響應(yīng)
發(fā)送請求,之后得到的肯定就是響應(yīng)。除了text,還有狀態(tài)碼,響應(yīng)頭,cookies等等。
requests 庫可以用來發(fā)送 HTTP 請求并獲取響應(yīng)。當(dāng)你發(fā)送一個 HTTP 請求時,你會得到一個 Response 對象,它包含了從服務(wù)器返回的所有數(shù)據(jù)。Response 對象有以下屬性:
status_code:HTTP 狀態(tài)碼,表示服務(wù)器的響應(yīng)狀態(tài)。
headers:一個字典,其中包含了從服務(wù)器返回的所有頭部信息。
body:一個字節(jié)串,包含了從服務(wù)器返回的所有數(shù)據(jù)。
??總結(jié)
requests是一個很實用的Python HTTP客戶端庫,爬蟲和測試服務(wù)器響應(yīng)數(shù)據(jù)時經(jīng)常會用到,requests是Python語言的第三方的庫,專門用于發(fā)送HTTP請求,使用起來比urllib簡潔很多。
本文我們說了requests的簡單用法,知道了如何發(fā)送請求,下一篇我們更深層次的來學(xué)習(xí)requests。我們看看高級一點的操作,比如講文件上傳,cookies設(shè)置,代理設(shè)置之類的。
到此這篇關(guān)于Python之 requests的使用(一)的文章就介紹到這了,更多相關(guān)Python requests的使用內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
Python實現(xiàn)五子棋人機(jī)對戰(zhàn)?和人人對戰(zhàn)
這篇文章主要介紹了Python實現(xiàn)五子棋人機(jī)對戰(zhàn)?和人人對戰(zhàn),通過定義黑白子,落子位置以及獲勝規(guī)則展開詳細(xì)內(nèi)容,需要的小伙伴可以參考一下2022-05-05Python實現(xiàn)Harbor私有鏡像倉庫垃圾自動化清理詳情
這篇文章主要介紹了Python實現(xiàn)Harbor私有鏡像倉庫垃圾自動化清理詳情,文章圍繞主題分享相關(guān)詳細(xì)代碼,需要的小伙伴可以參考一下2022-05-05Pygame Transform圖像變形的實現(xiàn)示例
pygame.transform 模塊允許您對加載、創(chuàng)建后的圖像進(jìn)行一系列操作,比如調(diào)整圖像大小、旋轉(zhuǎn)圖片等操作,感興趣的可以了解一下2021-11-11在 Django/Flask 開發(fā)服務(wù)器上使用 HTTPS
使用 Django 或 Flask 這種框架開發(fā) web app 的時候一般都會用內(nèi)建服務(wù)器開發(fā)和調(diào)試程序,等程序完成后再移交到生產(chǎn)環(huán)境部署。問題是這些內(nèi)建服務(wù)器通常都不支持 HTTPS,那么我們來探討下開啟https吧2014-07-07使用 Celery Once 來防止 Celery 重復(fù)執(zhí)行同一個任務(wù)
這篇文章主要介紹了使用 Celery Once 來防止 Celery 重復(fù)執(zhí)行同一個任務(wù),本文給大家介紹的非常詳細(xì),對大家的學(xué)習(xí)或工作具有一定的參考借鑒價值,需要的朋友可以參考下2021-10-10Python selenium環(huán)境搭建實現(xiàn)過程解析
這篇文章主要介紹了Python selenium環(huán)境搭建實現(xiàn)過程解析,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友可以參考下2020-09-09