Python中如何使用requests方法-創(chuàng)新互聯(lián)

創(chuàng)新互聯(lián)www.cdcxhl.cn八線動(dòng)態(tài)BGP香港云服務(wù)器提供商,新人活動(dòng)買多久送多久,劃算不套路!

創(chuàng)新互聯(lián)公司堅(jiān)持“要么做到,要么別承諾”的工作理念,服務(wù)領(lǐng)域包括:網(wǎng)站建設(shè)、網(wǎng)站制作、企業(yè)官網(wǎng)、英文網(wǎng)站、手機(jī)端網(wǎng)站、網(wǎng)站推廣等服務(wù),滿足客戶于互聯(lián)網(wǎng)時(shí)代的臨澧網(wǎng)站設(shè)計(jì)、移動(dòng)媒體設(shè)計(jì)的需求,幫助企業(yè)找到有效的互聯(lián)網(wǎng)解決方案。努力成為您成熟可靠的網(wǎng)絡(luò)建設(shè)合作伙伴!

本篇文章給大家分享的是有關(guān)Python中如何使用requests方法,小編覺得挺實(shí)用的,因此分享給大家學(xué)習(xí),希望大家閱讀完這篇文章后可以有所收獲,話不多說,跟著小編一起來看看吧。

安裝requests

如果安裝了Anaconda,requests就已經(jīng)可用了。否則,需要在命令行下通過pip安裝:

$ pip install requests

如果遇到Permission denied安裝失敗,請加上sudo重試。

使用requests

要通過GET訪問一個(gè)頁面,只需要幾行代碼:

>>> import requests
>>> r = requests.get('https://www.douban.com/') # 豆瓣首頁
>>> r.status_code
200
>>> r.text
r.text
'<!DOCTYPE HTML>\n<html>\n<head>\n<meta name="description" content="提供圖書、電影、音樂唱片的推薦、評(píng)論和...'

對(duì)于帶參數(shù)的URL,傳入一個(gè)dict作為params參數(shù):

>>> r = requests.get('https://www.douban.com/search', params={'q': 'python', 'cat': '1001'})
>>> r.url # 實(shí)際請求的URL'https://www.douban.com/search?q=python&cat=1001'

requests自動(dòng)檢測編碼,可以使用encoding屬性查看:

>>> r.encoding'utf-8'

無論響應(yīng)是文本還是二進(jìn)制內(nèi)容,我們都可以用content屬性獲得bytes對(duì)象:

>>> r.content
b'<!DOCTYPE html>\n<html>\n<head>\n<meta http-equiv="Content-Type" content="text/html; charset=utf-8">\n...'
requests的方便之處還在于,對(duì)于特定類型的響應(yīng),例如JSON,可以直接獲?。?>>> r = requests.get(' 
20woeid%20%3D%202151330&format=json')
>>> r.json()
{'query': {'count': 1, 'created': '2017-11-17T07:14:12Z', ...

需要傳入HTTP Header時(shí),我們傳入一個(gè)dict作為headers參數(shù):

>>> r = requests.get('https://www.douban.com/', headers={'User-Agent': 'Mozilla/5.0 (iPhone; CPU iPhone OS 
11_0 like 
Mac OS X) AppleWebKit'})
>>> r.text
'<!DOCTYPE html>\n<html>\n<head>\n<meta charset="UTF-8">\n <title>豆瓣(手機(jī)版)</title>...'

要發(fā)送POST請求,只需要把get()方法變成post(),然后傳入data參數(shù)作為POST請求的數(shù)據(jù):

>>> r = requests.post('https://accounts.douban.com/login', data={'form_email': 'abc@example.com', 'form_password':
 '123456'})
requests默認(rèn)使用application/x-www-form-urlencoded對(duì)POST數(shù)據(jù)編碼。如果要傳遞JSON數(shù)據(jù),可以直接傳入json參數(shù):
params = {'key': 'value'}r = requests.post(url, json=params) # 內(nèi)部自動(dòng)序列化為JSON

類似的,上傳文件需要更復(fù)雜的編碼格式,但是requests把它簡化成files參數(shù):

>>> upload_files = {'file': open('report.xls', 'rb')}
>>> r = requests.post(url, files=upload_files)

在讀取文件時(shí),注意務(wù)必使用'rb'即二進(jìn)制模式讀取,這樣獲取的bytes長度才是文件的長度。

把post()方法替換為put(),delete()等,就可以以PUT或DELETE方式請求資源。

除了能輕松獲取響應(yīng)內(nèi)容外,requests對(duì)獲取HTTP響應(yīng)的其他信息也非常簡單。例如,獲取響應(yīng)頭:

>>> r.headers
{Content-Type': 'text/html; charset=utf-8', 'Transfer-Encoding': 'chunked', 'Content-Encoding': 'gzip', ...}
>>> r.headers['Content-Type']
'text/html; charset=utf-8'

requests對(duì)Cookie做了特殊處理,使得我們不必解析Cookie就可以輕松獲取指定的Cookie:

>>> r.cookies['ts']'example_cookie_12345'

要在請求中傳入Cookie,只需準(zhǔn)備一個(gè)dict傳入cookies參數(shù):

>>> cs = {'token': '12345', 'status': 'working'}
>>> r = requests.get(url, cookies=cs)

最后,要指定超時(shí),傳入以秒為單位的timeout參數(shù):

>>> r = requests.get(url, timeout=2.5) # 2.5秒后超時(shí)

以上就是Python中如何使用requests方法,小編相信有部分知識(shí)點(diǎn)可能是我們?nèi)粘9ぷ鲿?huì)見到或用到的。希望你能通過這篇文章學(xué)到更多知識(shí)。更多詳情敬請關(guān)注創(chuàng)新互聯(lián)-成都網(wǎng)站建設(shè)公司行業(yè)資訊頻道。

新聞標(biāo)題:Python中如何使用requests方法-創(chuàng)新互聯(lián)
鏈接分享:http://muchs.cn/article28/ddjpcp.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供定制網(wǎng)站、服務(wù)器托管品牌網(wǎng)站建設(shè)、定制開發(fā)商城網(wǎng)站、搜索引擎優(yōu)化

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來源: 創(chuàng)新互聯(lián)

成都app開發(fā)公司