1、Requests模塊說明
Requests 是使用 Apache2 Licensed 許可證的 HTTP 庫(kù)。用 Python 編寫,真正的為人類著想。
Python 標(biāo)準(zhǔn)庫(kù)中的 urllib2 模塊提供了你所需要的大多數(shù) HTTP 功能,但是它的 API 太渣了。它是為另一個(gè)時(shí)代、另一個(gè)互聯(lián)網(wǎng)所創(chuàng)建的。它需要巨量的工作,甚至包括各種方法覆蓋,來完成最簡(jiǎn)單的任務(wù)。
在Python的世界里,事情不應(yīng)該這么麻煩。
Requests 使用的是 urllib3,因此繼承了它的所有特性。Requests 支持 HTTP 連接保持和連接池,支持使用 cookie 保持會(huì)話,支持文件上傳,支持自動(dòng)確定響應(yīng)內(nèi)容的編碼,支持國(guó)際化的 URL 和 POST 數(shù)據(jù)自動(dòng)編碼。現(xiàn)代、國(guó)際化、人性化。
2、Requests模塊安裝
點(diǎn)此下載
然后執(zhí)行安裝
$ python setup.py install
個(gè)人推薦使用pip安裝
pip install requests
也可以使用easy_install安裝
easy_install requests
嘗試在IDE中import requests,如果沒有報(bào)錯(cuò),那么安裝成功。
3、Requests模塊簡(jiǎn)單入門
#HTTP請(qǐng)求類型#get類型r = requests.get('https://github.com/timeline.json')#post類型r = requests.post("http://m.ctrip.com/post")#put類型r = requests.put("http://m.ctrip.com/put")#delete類型r = requests.delete("http://m.ctrip.com/delete")#head類型r = requests.head("http://m.ctrip.com/head")#options類型r = requests.options("http://m.ctrip.com/get")#獲取響應(yīng)內(nèi)容print r.content #以字節(jié)的方式去顯示,中文顯示為字符print r.text #以文本的方式去顯示#URL傳遞參數(shù)payload = {'keyword': '日本', 'salecityid': '2'}r = requests.get("http://m.ctrip.com/webapp/tourvisa/visa_list", params=payload) print r.url #示例為http://m.ctrip.com/webapp/tourvisa/visa_list?salecityid=2&keyword=日本#獲取/修改網(wǎng)頁(yè)編碼r = requests.get('https://github.com/timeline.json')print r.encodingr.encoding = 'utf-8'#json處理r = requests.get('https://github.com/timeline.json')print r.json() #需要先import json #定制請(qǐng)求頭url = 'http://m.ctrip.com'headers = {'User-Agent' : 'Mozilla/5.0 (Linux; Android 4.2.1; en-us; Nexus 4 Build/JOP40D) AppleWebKit/535.19 (KHTML, like Gecko) Chrome/18.0.1025.166 Mobile Safari/535.19'}r = requests.post(url, headers=headers)print r.request.headers#復(fù)雜post請(qǐng)求url = 'http://m.ctrip.com'payload = {'some': 'data'}r = requests.post(url, data=json.dumps(payload)) #如果傳遞的payload是string而不是dict,需要先調(diào)用dumps方法格式化一下#post多部分編碼文件url = 'http://m.ctrip.com'files = {'file': open('report.xls', 'rb')}r = requests.post(url, files=files)#響應(yīng)狀態(tài)碼r = requests.get('http://m.ctrip.com')print r.status_code #響應(yīng)頭r = requests.get('http://m.ctrip.com')print r.headersprint r.headers['Content-Type']print r.headers.get('content-type') #訪問響應(yīng)頭部分內(nèi)容的兩種方式 #Cookiesurl = 'http://example.com/some/cookie/setting/url'r = requests.get(url)r.cookies['example_cookie_name'] #讀取cookies url = 'http://m.ctrip.com/cookies'cookies = dict(cookies_are='working')r = requests.get(url, cookies=cookies) #發(fā)送cookies#設(shè)置超時(shí)時(shí)間r = requests.get('http://m.ctrip.com', timeout=0.001)#設(shè)置訪問代理proxies = {   "http": "http://10.10.10.10:8888",   "https": "http://10.10.10.100:4444",   }r = requests.get('http://m.ctrip.com', proxies=proxies)            
新聞熱點(diǎn)
疑難解答
圖片精選