python 的request庫(kù)

其實(shí)在python中還有自帶的urllib, urllib2, urllib3,而request是國(guó)外程序開發(fā)的第三方庫(kù),至于他們的關(guān)系嘛塘匣,urllib和urllib2是相互獨(dú)立的關(guān)系谅海,而request則使用了urllib3滚婉,其優(yōu)點(diǎn)是多次請(qǐng)求重復(fù)使用一個(gè)socket凰狞,你想三次握手多麻煩豁陆,建立一個(gè)socket復(fù)用當(dāng)然能提高效率不是柑爸。
當(dāng)然了,使用這些的基礎(chǔ)是對(duì)http協(xié)議要有一定的認(rèn)識(shí)最好盒音,沒(méi)有的話只要你對(duì)發(fā)信收信的過(guò)程有一個(gè)概念就可以了表鳍。


所需:
pip install virtualenv(可選)
pip install request
pip install gunicorn


話不多說(shuō)show you the code:

  • urllib2
    其實(shí)在我的豆瓣爬蟲中就使用過(guò)urllib2,有興趣的可以移步瞅一眼
#coding=utf-8
import urllib2
import urllib

url = "http://httpbin.org/ip"
geturl = "http://httpbin.org/get"
def urllib2test():
    response = urllib2.urlopen(url)
    #響應(yīng)頭信息
    print "====responseheaders===="
    print response.info()
    #響應(yīng)體
    print "====responsbody===="
    print ''.join([item for item in response.readlines()])
    
def urllibget():
    params = urllib.urlencode({'param1': 'hello','param2': 'world'})
    response = urllib2.urlopen('?'.join([geturl, '%s'])%params)
    #響應(yīng)頭信息
    print "====responseheaders===="
    print response.info()
    #響應(yīng)體
    print "====responsbody===="
    print ''.join([item for item in response.readlines()])
    
    
if __name__ == "__main__":
    urllib2test()
    urllibget()

這是一個(gè)簡(jiǎn)單的urllib2的使用,我們可以對(duì)其響應(yīng)部分像讀取文件一樣操作

[item for item in response.readlines()]是序列推導(dǎo)式祥诽,相當(dāng)于:
result = [];
for item in response.readlines():
      result.append(item)
  • 運(yùn)行結(jié)果


    圖片發(fā)自簡(jiǎn)書App

在使用request時(shí)譬圣,就簡(jiǎn)單了:

#coding="utf-8
import requests
ipurl = "http://httpbin.org/ip"
geturl = "http://httpbin.org/get"


def printinfo(res):
    print ">>>>headers"
    print res.headers
    print ">>>>code"
    print res.status_code
    print ">>>>boyd"
    print res.text
    print ">>>>jsondata"
    print res.json()

response1 = requests.get(ipurl)
printinfo(response1)
params = {'param1':'hello','param2':'world'}
response2 = requests.get(geturl, params = params)
printinfo(response2)

*運(yùn)行結(jié)果:


圖片發(fā)自簡(jiǎn)書App

使用requests和github通信

#coding="utf-8"
import json
import requests

URL = 'https://api.github.com'

def build_uri(endpoint):
    return '/'.join([URL,endpoint])
    
def better_print(json_str):
    return json.dumps(json.loads(json_str), indent = 4)
    
def request_method():
    response = requests.get(build_uri('users/hopevow'))
    print better_print(response.text)
    
if __name__ == '__main__':
    request_method()

運(yùn)行結(jié)果


圖片發(fā)自簡(jiǎn)書App

總結(jié)

  • 帶參數(shù)的請(qǐng)求

GET
request.get(url, params={'key1':'value1'}

POST
request.post(url, data = {'key1':'value1})

JSON參數(shù)提交
request.post(url, json={'key1':'value1'})

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個(gè)濱河市雄坪,隨后出現(xiàn)的幾起案子厘熟,更是在濱河造成了極大的恐慌,老刑警劉巖,帶你破解...
    沈念sama閱讀 216,919評(píng)論 6 502
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件绳姨,死亡現(xiàn)場(chǎng)離奇詭異登澜,居然都是意外死亡,警方通過(guò)查閱死者的電腦和手機(jī)飘庄,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 92,567評(píng)論 3 392
  • 文/潘曉璐 我一進(jìn)店門脑蠕,熙熙樓的掌柜王于貴愁眉苦臉地迎上來(lái),“玉大人跪削,你說(shuō)我怎么就攤上這事谴仙。” “怎么了碾盐?”我有些...
    開封第一講書人閱讀 163,316評(píng)論 0 353
  • 文/不壞的土叔 我叫張陵晃跺,是天一觀的道長(zhǎng)。 經(jīng)常有香客問(wèn)我廓旬,道長(zhǎng)哼审,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 58,294評(píng)論 1 292
  • 正文 為了忘掉前任孕豹,我火速辦了婚禮涩盾,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘励背。我一直安慰自己春霍,他們只是感情好,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,318評(píng)論 6 390
  • 文/花漫 我一把揭開白布叶眉。 她就那樣靜靜地躺著址儒,像睡著了一般。 火紅的嫁衣襯著肌膚如雪衅疙。 梳的紋絲不亂的頭發(fā)上莲趣,一...
    開封第一講書人閱讀 51,245評(píng)論 1 299
  • 那天,我揣著相機(jī)與錄音饱溢,去河邊找鬼喧伞。 笑死,一個(gè)胖子當(dāng)著我的面吹牛绩郎,可吹牛的內(nèi)容都是我干的潘鲫。 我是一名探鬼主播,決...
    沈念sama閱讀 40,120評(píng)論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼肋杖,長(zhǎng)吁一口氣:“原來(lái)是場(chǎng)噩夢(mèng)啊……” “哼溉仑!你這毒婦竟也來(lái)了?” 一聲冷哼從身側(cè)響起状植,我...
    開封第一講書人閱讀 38,964評(píng)論 0 275
  • 序言:老撾萬(wàn)榮一對(duì)情侶失蹤浊竟,失蹤者是張志新(化名)和其女友劉穎怨喘,沒(méi)想到半個(gè)月后,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體逐沙,經(jīng)...
    沈念sama閱讀 45,376評(píng)論 1 313
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡哲思,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 37,592評(píng)論 2 333
  • 正文 我和宋清朗相戀三年,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了吩案。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點(diǎn)故事閱讀 39,764評(píng)論 1 348
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡帝簇,死狀恐怖徘郭,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情丧肴,我是刑警寧澤残揉,帶...
    沈念sama閱讀 35,460評(píng)論 5 344
  • 正文 年R本政府宣布,位于F島的核電站芋浮,受9級(jí)特大地震影響抱环,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜纸巷,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,070評(píng)論 3 327
  • 文/蒙蒙 一镇草、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧瘤旨,春花似錦梯啤、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,697評(píng)論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)。三九已至祟偷,卻和暖如春察滑,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背修肠。 一陣腳步聲響...
    開封第一講書人閱讀 32,846評(píng)論 1 269
  • 我被黑心中介騙來(lái)泰國(guó)打工贺辰, 沒(méi)想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留,地道東北人氛赐。 一個(gè)月前我還...
    沈念sama閱讀 47,819評(píng)論 2 370
  • 正文 我出身青樓魂爪,卻偏偏與公主長(zhǎng)得像,于是被迫代替她去往敵國(guó)和親艰管。 傳聞我的和親對(duì)象是個(gè)殘疾皇子滓侍,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 44,665評(píng)論 2 354

推薦閱讀更多精彩內(nèi)容