日韩无码专区无码一级三级片|91人人爱网站中日韩无码电影|厨房大战丰满熟妇|AV高清无码在线免费观看|另类AV日韩少妇熟女|中文日本大黄一级黄色片|色情在线视频免费|亚洲成人特黄a片|黄片wwwav色图欧美|欧亚乱色一区二区三区

RELATEED CONSULTING
相關(guān)咨詢(xún)
選擇下列產(chǎn)品馬上在線溝通
服務(wù)時(shí)間:8:30-17:00
你可能遇到了下面的問(wèn)題
關(guān)閉右側(cè)工具欄

新聞中心

這里有您想知道的互聯(lián)網(wǎng)營(yíng)銷(xiāo)解決方案
Pythonrequests模塊

Python requests 模塊

Python requests 是一個(gè)常用的 HTTP 請(qǐng)求庫(kù),可以方便地向網(wǎng)站發(fā)送 HTTP 請(qǐng)求,并獲取響應(yīng)結(jié)果。

網(wǎng)站建設(shè)哪家好,找成都創(chuàng)新互聯(lián)!專(zhuān)注于網(wǎng)頁(yè)設(shè)計(jì)、網(wǎng)站建設(shè)、微信開(kāi)發(fā)、小程序定制開(kāi)發(fā)、集團(tuán)企業(yè)網(wǎng)站建設(shè)等服務(wù)項(xiàng)目。為回饋新老客戶(hù)創(chuàng)新互聯(lián)還提供了寒亭免費(fèi)建站歡迎大家使用!

requests 模塊比 模塊更簡(jiǎn)潔。

使用 requests 發(fā)送 HTTP 請(qǐng)求需要先導(dǎo)入 requests 模塊:

import requests

導(dǎo)入后就可以發(fā)送 HTTP 請(qǐng)求,使用 requests 提供的方法向指定 URL 發(fā)送 HTTP 請(qǐng)求,例如:

實(shí)例

# 導(dǎo)入 requests 包


import requests

# 發(fā)送請(qǐng)求

x
= requests.
get
(
'https://www.runoob.com/'
)

# 返回網(wǎng)頁(yè)內(nèi)容


print
(x.
text
)

每次調(diào)用 requests 請(qǐng)求之后,會(huì)返回一個(gè) response 對(duì)象,該對(duì)象包含了具體的響應(yīng)信息,如狀態(tài)碼、響應(yīng)頭、響應(yīng)內(nèi)容等:

print(response.status_code)  # 獲取響應(yīng)狀態(tài)碼
print(response.headers)  # 獲取響應(yīng)頭
print(response.content)  # 獲取響應(yīng)內(nèi)容

更多響應(yīng)信息如下:

屬性或方法 說(shuō)明
apparent_encoding編碼方式
close()關(guān)閉與服務(wù)器的連接
content返回響應(yīng)的內(nèi)容,以字節(jié)為單位
cookies返回一個(gè) CookieJar 對(duì)象,包含了從服務(wù)器發(fā)回的 cookie
elapsed返回一個(gè) timedelta 對(duì)象,包含了從發(fā)送請(qǐng)求到響應(yīng)到達(dá)之間經(jīng)過(guò)的時(shí)間量,可以用于測(cè)試響應(yīng)速度。比如 r.elapsed.microseconds 表示響應(yīng)到達(dá)需要多少微秒。
encoding解碼 r.text 的編碼方式
headers返回響應(yīng)頭,字典格式
history返回包含請(qǐng)求歷史的響應(yīng)對(duì)象列表(url)
is_permanent_redirect如果響應(yīng)是永久重定向的 url,則返回 True,否則返回 False
is_redirect如果響應(yīng)被重定向,則返回 True,否則返回 False
iter_content()迭代響應(yīng)
iter_lines()迭代響應(yīng)的行
json()返回結(jié)果的 JSON 對(duì)象 (結(jié)果需要以 JSON 格式編寫(xiě)的,否則會(huì)引發(fā)錯(cuò)誤)
links返回響應(yīng)的解析頭鏈接
next返回重定向鏈中下一個(gè)請(qǐng)求的 PreparedRequest 對(duì)象
ok檢查 "status_code" 的值,如果小于400,則返回 True,如果不小于 400,則返回 False
raise_for_status()如果發(fā)生錯(cuò)誤,方法返回一個(gè) HTTPError 對(duì)象
reason響應(yīng)狀態(tài)的描述,比如 "Not Found" 或 "OK"
request返回請(qǐng)求此響應(yīng)的請(qǐng)求對(duì)象
status_code返回 http 的狀態(tài)碼,比如 404 和 200(200 是 OK,404 是 Not Found)
text返回響應(yīng)的內(nèi)容,unicode 類(lèi)型數(shù)據(jù)
url返回響應(yīng)的 URL

實(shí)例

# 導(dǎo)入 requests 包


import requests

# 發(fā)送請(qǐng)求

x
= requests.
get
(
'https://www.runoob.com/'
)

# 返回 http 的狀態(tài)碼


print
(x.
status_code
)

# 響應(yīng)狀態(tài)的描述


print
(x.
reason
)

# 返回編碼


print
(x.
apparent_encoding
)

輸出結(jié)果如下:

200
OK
utf-8

請(qǐng)求 json 數(shù)據(jù)文件,返回 json 內(nèi)容:

實(shí)例

# 導(dǎo)入 requests 包


import requests

# 發(fā)送請(qǐng)求

x
= requests.
get
(
'https://www.runoob.com/try/ajax/json_demo.json'
)

# 返回 json 數(shù)據(jù)


print
(x.
json
(
)
)

輸出結(jié)果如下:

{'name': '網(wǎng)站', 'num': 3, 'sites': [{'name': 'Google', 'info': ['Android', 'Google 搜索', 'Google 翻譯']}, {'name': 'Runoob', 'info': ['菜鳥(niǎo)教程', '菜鳥(niǎo)工具', '菜鳥(niǎo)微信']}, {'name': 'Taobao', 'info': ['淘寶', '網(wǎng)購(gòu)']}]}

requests 方法

requests 方法如下表:

方法 描述
delete(url, args)發(fā)送 DELETE 請(qǐng)求到指定 url
get(url, params, args)發(fā)送 GET 請(qǐng)求到指定 url
head(url, args)發(fā)送 HEAD 請(qǐng)求到指定 url
patch(url, data, args)發(fā)送 PATCH 請(qǐng)求到指定 url
post(url, data, json, args)發(fā)送 POST 請(qǐng)求到指定 url
put(url, data, args)發(fā)送 PUT 請(qǐng)求到指定 url
request(method, url, args)向指定的 url 發(fā)送指定的請(qǐng)求方法

使用 requests.request() 發(fā)送 get 請(qǐng)求:

實(shí)例

# 導(dǎo)入 requests 包


import requests

# 發(fā)送請(qǐng)求

x
= requests.
request
(
'get'
,
'https://www.runoob.com/'
)

# 返回網(wǎng)頁(yè)內(nèi)容


print
(x.
status_code
)

輸出結(jié)果如下:

200

設(shè)置請(qǐng)求頭:

實(shí)例

# 導(dǎo)入 requests 包


import requests

 

kw
=
{
's':
'python 教程'
}

# 設(shè)置請(qǐng)求頭

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 接收一個(gè)字典或者字符串的查詢(xún)參數(shù),字典類(lèi)型自動(dòng)轉(zhuǎn)換為url編碼,不需要urlencode()

response
= requests.
get
(
"https://www.runoob.com/"
, params
= kw
, headers
= headers
)

# 查看響應(yīng)狀態(tài)碼


print
(response.
status_code
)

# 查看響應(yīng)頭部字符編碼


print
(response.
encoding
)

# 查看完整url地址


print
(response.
url
)

# 查看響應(yīng)內(nèi)容,response.text 返回的是Unicode格式的數(shù)據(jù)


print
(response.
text
)

輸出結(jié)果如下:

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

... 其他內(nèi)容...

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

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

  • data 參數(shù)為要發(fā)送到指定 url 的字典、元組列表、字節(jié)或文件對(duì)象。

  • json 參數(shù)為要發(fā)送到指定 url 的 JSON 對(duì)象。

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

實(shí)例

# 導(dǎo)入 requests 包


import requests

# 發(fā)送請(qǐng)求

x
= requests.
post
(
'https://www.runoob.com/try/ajax/demo_post.php'
)

# 返回網(wǎng)頁(yè)內(nèi)容


print
(x.
text
)

輸出結(jié)果如下:

本內(nèi)容是使用 POST 方法請(qǐng)求的。

請(qǐng)求時(shí)間: 2022-05-26 17:30:47

post 請(qǐng)求帶參數(shù):

實(shí)例

# 導(dǎo)入 requests 包


import requests

# 表單參數(shù),參數(shù)名為 fname 和 lname

myobj
=
{
'fname':
'RUNOOB'
,
'lname':
'Boy'
}

# 發(fā)送請(qǐng)求

x
= requests.
post
(
'https://www.runoob.com/try/ajax/demo_post2.php'
, data
= myobj
)

# 返回網(wǎng)頁(yè)內(nèi)容


print
(x.
text
)

輸出結(jié)果如下:

你好,RUNOOB Boy,今天過(guò)得怎么樣?


附加請(qǐng)求參數(shù)

發(fā)送請(qǐng)求我們可以在請(qǐng)求中附加額外的參數(shù),例如請(qǐng)求頭、查詢(xún)參數(shù)、請(qǐng)求體等,例如:

headers = {'User-Agent': 'Mozilla/5.0'}  # 設(shè)置請(qǐng)求頭
params = {'key1': 'value1', 'key2': 'value2'}  # 設(shè)置查詢(xún)參數(shù)
data = {'username': 'example', 'password': '123456'}  # 設(shè)置請(qǐng)求體
response = requests.post('https://www.runoob.com', headers=headers, params=params, data=data)

上述代碼發(fā)送一個(gè) POST 請(qǐng)求,并附加了請(qǐng)求頭、查詢(xún)參數(shù)和請(qǐng)求體。

除了基本的 GET 和 POST 請(qǐng)求外,requests 還支持其他 HTTP 方法,如 PUT、DELETE、HEAD、OPTIONS 等。


網(wǎng)頁(yè)題目:Pythonrequests模塊
本文URL:http://www.5511xx.com/article/cdedees.html