程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
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(url, args)發送 DELETE 請求到指定 urlget(url, params, args)發送 GET 請求到指定 urlhead(url, args)發送 HEAD 請求到指定 urlpatch(url, data, args)發送 PATCH 請求到指定 urlpost(url, data, json, args)發送 POST 請求到指定 urlput(url, data, args)發送 PUT 請求到指定 urlrequest(method, url, args)向指定的 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