欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

Python之 requests的使用(一)

 更新時間:2023年04月09日 10:49:11   作者:愛吃餅干的小白鼠  
requests是一個很實用的Python HTTP客戶端庫,爬蟲和測試服務(wù)器響應(yīng)數(shù)據(jù)時經(jīng)常會用到,requests是Python語言的第三方的庫,專門用于發(fā)送HTTP請求,使用起來比urllib簡潔很多,這篇文章主要介紹requests的基礎(chǔ)用法

?? 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)

    這篇文章主要介紹了Python實現(xiàn)五子棋人機(jī)對戰(zhàn)?和人人對戰(zhàn),通過定義黑白子,落子位置以及獲勝規(guī)則展開詳細(xì)內(nèi)容,需要的小伙伴可以參考一下
    2022-05-05
  • Python實現(xiàn)Harbor私有鏡像倉庫垃圾自動化清理詳情

    Python實現(xiàn)Harbor私有鏡像倉庫垃圾自動化清理詳情

    這篇文章主要介紹了Python實現(xiàn)Harbor私有鏡像倉庫垃圾自動化清理詳情,文章圍繞主題分享相關(guān)詳細(xì)代碼,需要的小伙伴可以參考一下
    2022-05-05
  • Pygame Transform圖像變形的實現(xiàn)示例

    Pygame Transform圖像變形的實現(xiàn)示例

    pygame.transform 模塊允許您對加載、創(chuàng)建后的圖像進(jìn)行一系列操作,比如調(diào)整圖像大小、旋轉(zhuǎn)圖片等操作,感興趣的可以了解一下
    2021-11-11
  • 在 Django/Flask 開發(fā)服務(wù)器上使用 HTTPS

    在 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ù)

    這篇文章主要介紹了使用 Celery Once 來防止 Celery 重復(fù)執(zhí)行同一個任務(wù),本文給大家介紹的非常詳細(xì),對大家的學(xué)習(xí)或工作具有一定的參考借鑒價值,需要的朋友可以參考下
    2021-10-10
  • Python selenium環(huán)境搭建實現(xiàn)過程解析

    Python selenium環(huán)境搭建實現(xiàn)過程解析

    這篇文章主要介紹了Python selenium環(huán)境搭建實現(xiàn)過程解析,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友可以參考下
    2020-09-09
  • 在python的類中動態(tài)添加屬性與生成對象

    在python的類中動態(tài)添加屬性與生成對象

    這篇文章給大家介紹了如何在python的類中動態(tài)添加屬性和生成對象,文中通過幾個方面來進(jìn)行介紹,對這感興趣的朋友們可以學(xué)習(xí)學(xué)習(xí)。
    2016-09-09
  • Python中的單繼承與多繼承實例分析

    Python中的單繼承與多繼承實例分析

    這篇文章主要介紹了Python中的單繼承與多繼承,結(jié)合實例詳細(xì)分析了Python面向?qū)ο蟪绦蛟O(shè)計中單繼承與多繼承的概念、原理、實現(xiàn)方法及相關(guān)操作注意事項,需要的朋友可以參考下
    2018-05-05
  • 一篇文章學(xué)會兩種將python打包成exe的方式

    一篇文章學(xué)會兩種將python打包成exe的方式

    最近有部分小伙伴問我,python 寫的項目可不可以打包成exe程序,放到?jīng)]有python環(huán)境上的電腦中執(zhí)行? 答案當(dāng)然是可以的,下面這篇文章主要給大家介紹了如何通過一篇文章學(xué)會兩種將pyton打包成exe的方式,需要的朋友可以參考下
    2021-11-11
  • 打包Python代碼的常用方法小結(jié)

    打包Python代碼的常用方法小結(jié)

    Python是一門強(qiáng)大的編程語言,但在將Python代碼分享給其他人時,讓他們安裝Python解釋器并運(yùn)行腳本可能有點繁瑣,這時,將Python代碼打包成可執(zhí)行的應(yīng)用程序(.exe)可以大大簡化這個過程,本文將介紹幾種常用的方法,輕松地將Python代碼變成獨(dú)立的可執(zhí)行文件
    2023-11-11

最新評論