小男孩‘自慰网亚洲一区二区,亚洲一级在线播放毛片,亚洲中文字幕av每天更新,黄aⅴ永久免费无码,91成人午夜在线精品,色网站免费在线观看,亚洲欧洲wwwww在线观看

分享

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

 Macalist 2016-09-01

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


背景介紹

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

requests quick start

發(fā)送請求

def function():

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

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

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

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

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

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

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

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

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

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

# requests 會自動幫我們拼接請求地址
# url= http:///get?key1=value1&key2=value2

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

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

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

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

post json對象請求提交參數(shù)

def function():
# post 提交json對象數(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)造請求頭headers

def function():

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

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

構(gòu)造cookies請求

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

構(gòu)造請求超時設(shè)置

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

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

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

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

# 響應(yīng)json數(shù)據(jù)信息,通常我們使用json模塊來處理
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ù)庫非常的簡便 for humans,做網(wǎng)絡(luò)爬蟲時也可以使用該庫函數(shù)。高級部分請參考,官方高級應(yīng)用參考。

參考

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

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

    0條評論

    發(fā)表

    請遵守用戶 評論公約

    類似文章 更多