程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式師世界 >> 編程語言 >  >> 更多編程語言 >> Python

Python requests 模塊

編輯:Python

Python 內置了 requests 模塊,該模塊主要用來發 送 HTTP 請求,requests 模塊比 urllib 模塊更簡潔。

實例

# 導入 requests 包
import requests
# 發送請求
x = requests.get('https://www.runoob.com/')
# 返回網頁內容
print(x.text)

每次調用 requests 請求之後,會返回一個 response 對象,該對象包含了具體的響應信息。

響應信息如下:

屬性或方法說明apparent_encoding編碼方式close()關閉與服務器的連接content返回響應的內容,以字節為單位cookies返回一個 CookieJar 對象,包含了從服務器發回的 cookieelapsed返回一個 timedelta 對象,包含了從發送請求到響應到達之間經過的時間量,可以用於測試響應速度。比如 r.elapsed.microseconds 表示響應到達需要多少微秒。encoding解碼 r.text 的編碼方式headers返回響應頭,字典格式history返回包含請求歷史的響應對象列表(url)is_permanent_redirect如果響應是永久重定向的 url,則返回 True,否則返回 Falseis_redirect如果響應被重定向,則返回 True,否則返回 Falseiter_content()迭代響應iter_lines()迭代響應的行json()返回結果的 JSON 對象 (結果需要以 JSON 格式編寫的,否則會引發錯誤)links返回響應的解析頭鏈接next返回重定向鏈中下一個請求的 PreparedRequest 對象ok檢查 "status_code" 的值,如果小於400,則返回 True,如果不小於 400,則返回 Falseraise_for_status()如果發生錯誤,方法返回一個 HTTPError 對象reason響應狀態的描述,比如 "Not Found" 或 "OK"request返回請求此響應的請求對象status_code返回 http 的狀態碼,比如 404 和 200(200 是 OK,404 是 Not Found)text返回響應的內容,unicode 類型數據url返回響應的 URL

實例

# 導入 requests 包
import requests
# 發送請求
x = requests.get('https://www.runoob.com/')
# 返回 http 的狀態碼
print(x.status_code)
# 響應狀態的描述
print(x.reason)
# 返回編碼
print(x.apparent_encoding)

輸出結果如下:

200
OK
utf-8

請求 json 數據文件,返回 json 內容:

實例

# 導入 requests 包
import requests
# 發送請求
x = requests.get('https://www.runoob.com/try/ajax/json_demo.json')
# 返回 json 數據
print(x.json())

輸出結果如下:

{'name': '網站', 'num': 3, 'sites': [{'name': 'Google', 'info': ['Android', 'Google 搜索', 'Google 翻譯']}, {'name': 'Runoob', 'info': ['菜鳥教程', '菜鳥工具', '菜鳥微信']}, {'name': 'Taobao', 'info': ['淘寶', '網購']}]}

requests 方法

requests 方法如下表:

方法描述delete(urlargs)發送 DELETE 請求到指定 urlget(urlparams, args)發送 GET 請求到指定 urlhead(urlargs)發送 HEAD 請求到指定 urlpatch(urldata, args)發送 PATCH 請求到指定 urlpost(urldata, json, args)發送 POST 請求到指定 urlput(urldata, args)發送 PUT 請求到指定 urlrequest(methodurlargs)向指定的 url 發送指定的請求方法

使用 requests.request() 發送 get 請求:

實例

# 導入 requests 包
import requests
# 發送請求
x = requests.request('get', 'https://www.runoob.com/')
# 返回網頁內容
print(x.status_code)

輸出結果如下:

200

設置請求頭:

實例

# 導入 requests 包
import requests
 
kw = {'s':'python 教程'}
# 設置請求頭
headers = {"User-Agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/54.0.2840.99 Safari/537.36"}
 
# params 接收一個字典或者字符串的查詢參數,字典類型自動轉換為url編碼,不需要urlencode()
response = requests.get("https://www.runoob.com/", params = kw, headers = headers)
# 查看響應狀態碼
print (response.status_code)
# 查看響應頭部字符編碼
print (response.encoding)
# 查看完整url地址
print (response.url)
# 查看響應內容,response.text 返回的是Unicode格式的數據
print(response.text)

輸出結果如下:

200
UTF-8
https://www.runoob.com/?s=python+%E6%95%99%E7%A8%8B
... 其他內容...

post() 方法可以發送 POST 請求到指定 url,一般格式如下:

requests.post(url, data={key: value}, json={key: value}, args)
  • url 請求 url。

  • data 參數為要發送到指定 url 的字典、元組列表、字節或文件對象。

  • json 參數為要發送到指定 url 的 JSON 對象。

  • args 為其他參數,比如 cookies、headers、verify等。

實例

# 導入 requests 包
import requests
# 發送請求
x = requests.post('https://www.runoob.com/try/ajax/demo_post.php')
# 返回網頁內容
print(x.text)

輸出結果如下:

<p style='color:red;'>本內容是使用 POST 方法請求的。</p><p style='color:red;'>請求時間:
2022-05-26 17:30:47</p>

post 請求帶參數:

實例

# 導入 requests 包
import requests
# 表單參數,參數名為 fname 和 lname
myobj = {'fname': 'RUNOOB','lname': 'Boy'}
# 發送請求
x = requests.post('https://www.runoob.com/try/ajax/demo_post2.php', data = myobj)
# 返回網頁內容
print(x.text)

輸出結果如下:

<p style='color:red;'>你好,RUNOOB Boy,今天過得怎麼樣?</p>

  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式師世界 All Rights Reserved