一区二区三区日韩精品-日韩经典一区二区三区-五月激情综合丁香婷婷-欧美精品中文字幕专区

分享

Python網(wǎng)絡(luò)請(qǐng)求模塊requests

 Macalist 2016-09-01

Python網(wǎng)絡(luò)請(qǐng)求模塊requests


背景介紹

之前說(shuō)了,公司有一個(gè)需求需要使用python實(shí)現(xiàn)。由于公司服務(wù)器上的python版本是2.7我在寫這個(gè)需求時(shí),用到網(wǎng)絡(luò)請(qǐng)求這部分時(shí),
發(fā)現(xiàn)python 2.7版本的請(qǐng)求模塊真的是設(shè)計(jì)很不合理,urllib和urllib2兩個(gè)包,我弄的云里霧里的,索性我就不適用自帶內(nèi)建函數(shù), 
尋找第三方函數(shù)庫(kù)了,發(fā)現(xiàn)requests這個(gè)函數(shù)庫(kù)非常的便捷(http for humans).直接使用pip install requests命令即可安裝。

requests quick start

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

def function():

# 發(fā)送get請(qǐng)求獲得一個(gè)response對(duì)象(我們可以從響應(yīng)對(duì)象獲得我們想要的一切數(shù)據(jù))
res = requests.get("https://api.github.com/events")

# 發(fā)送post請(qǐng)求
res = requests.post("http:///post",data={"key":"value", ...})

# 發(fā)送put請(qǐng)求
res = requests.put("http:///put",data={"key":"value", ...})

# 發(fā)送delete請(qǐng)求
res = requests.delete("http:///delete")

res = requests.head("http:///get")
res = requests.options("http:///get")

pass
//你沒(méi)看錯(cuò)就是那么簡(jiǎn)單,非常符合正常人的思維很簡(jiǎn)便
//再次強(qiáng)調(diào)我們能夠從response對(duì)象中獲得我們想要的一切數(shù)據(jù)信息

構(gòu)造請(qǐng)求參數(shù)發(fā)送請(qǐng)求

get請(qǐng)求參數(shù)構(gòu)造

def function():
# 請(qǐng)求參數(shù)
payload = {'key1': 'value1', 'key2': 'value2'}

res = requests.get("http:///get",params=payload)# 注意是params參數(shù)

# requests 會(huì)自動(dòng)幫我們拼接請(qǐng)求地址
# url= http:///get?key1=value1&key2=value2

//針對(duì)get請(qǐng)求使用的即使params參數(shù),post請(qǐng)求使用的是data參數(shù)

post form表單請(qǐng)求參數(shù)構(gòu)造

def function():
# form表單要提交的數(shù)據(jù)
payload = {'key1': 'value1', 'key2': 'value2'}

res = requests.post("http:///post",data=payload)# 注意是data參數(shù)

post json對(duì)象請(qǐng)求提交參數(shù)

def function():
# post 提交json對(duì)象數(shù)據(jù)
payload = {'key1': 'value1', 'key2': 'value2'}

res = requests.post("http:///post",data=json.dumps(payload))# 第一種方式

res = requests.post("http:///post",json=payload)# 第二種方式

構(gòu)造請(qǐng)求頭headers

def function():

# 構(gòu)造請(qǐng)求頭,請(qǐng)求頭也是字典格式
headers = {'user-agent': 'my-app/0.0.1'}
url = "https://api.github.com/some/endpoint"

res = requests.get(url,headers=headers)

構(gòu)造cookies請(qǐng)求

def function():
# 構(gòu)造cookies
cookies = dict(sessionId='Jsession3123131')
url = "http:///cookies"
requests.get(url,cookies=cookies)
//比如有些應(yīng)用可能需要攜帶某些cookie才能驗(yàn)證授權(quán),那么此時(shí)就很有用了

構(gòu)造請(qǐng)求超時(shí)設(shè)置

def function():
# 設(shè)置請(qǐng)求超時(shí)時(shí)間
requests.get('http://github.com', timeout=0.01) # 0.01秒沒(méi)響應(yīng)就請(qǐng)求超時(shí)失敗

Response響應(yīng)內(nèi)容

content = res.content(原始二進(jìn)制數(shù)據(jù))

# 大部分情況使用這個(gè)方法
text = res.text(文本數(shù)據(jù)信息,requests自動(dòng)幫我們以指定編碼解析出來(lái)的內(nèi)容)

# 響應(yīng)json數(shù)據(jù)信息,通常我們使用json模塊來(lái)處理
json_data = res.json()

# 響應(yīng)狀態(tài)碼
status_code=res.status_code

# 響應(yīng)頭
headers = res.headers

# 響應(yīng)cookies
cookies = res.cookies

總結(jié)

一句話requests函數(shù)庫(kù)非常的簡(jiǎn)便 for humans,做網(wǎng)絡(luò)爬蟲時(shí)也可以使用該庫(kù)函數(shù)。高級(jí)部分請(qǐng)參考,官方高級(jí)應(yīng)用參考。

參考

1、http://docs./en/latest/user/quickstart/
2、http://docs./en/latest/user/advanced/#advanced
3、http://docs./en/latest/

    本站是提供個(gè)人知識(shí)管理的網(wǎng)絡(luò)存儲(chǔ)空間,所有內(nèi)容均由用戶發(fā)布,不代表本站觀點(diǎn)。請(qǐng)注意甄別內(nèi)容中的聯(lián)系方式、誘導(dǎo)購(gòu)買等信息,謹(jǐn)防詐騙。如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請(qǐng)點(diǎn)擊一鍵舉報(bào)。
    轉(zhuǎn)藏 分享 獻(xiàn)花(0

    0條評(píng)論

    發(fā)表

    請(qǐng)遵守用戶 評(píng)論公約

    類似文章 更多

    熟女少妇一区二区三区蜜桃| 亚洲一区二区三在线播放| 后入美臀少妇一区二区| 日韩在线免费看中文字幕| 黄片免费播放一区二区| 日韩精品人妻少妇一区二区| 中文字幕在线区中文色 | 91在线国内在线中文字幕| 91欧美视频在线观看免费| 精品日韩视频在线观看| 人妻人妻人人妻人人澡| 99久久精品午夜一区| 亚洲天堂有码中文字幕视频| 亚洲中文字幕剧情在线播放| 丰满熟女少妇一区二区三区| 久久久精品日韩欧美丰满| 精品日韩av一区二区三区| 精品人妻一区二区四区| av在线免费观看在线免费观看| 国产福利一区二区久久| 白白操白白在线免费观看| 亚洲人午夜精品射精日韩| 91超频在线视频中文字幕| 国产一级二级三级观看| 精品亚洲一区二区三区w竹菊| 无套内射美女视频免费在线观看| 日韩国产传媒在线精品| 激情少妇一区二区三区| 俄罗斯胖女人性生活视频| 久久精品国产99精品亚洲| 亚洲最大的中文字幕在线视频| 日韩精品你懂的在线观看| 精品欧美日韩一二三区| 成人精品一区二区三区在线| 亚洲高清欧美中文字幕| 亚洲免费观看一区二区三区| 果冻传媒精选麻豆白晶晶| 欧美乱码精品一区二区三| 亚洲精品有码中文字幕在线观看| 99精品国产自在现线观看| 日韩精品一区二区三区射精|