摘要:是用語(yǔ)言編寫客戶端庫(kù),跟類似,基于,但比更加方便,可以節(jié)約我們大量的工作,完全滿足測(cè)試需求,編寫爬蟲(chóng)和測(cè)試服務(wù)器響應(yīng)數(shù)據(jù)時(shí)經(jīng)常會(huì)用到。
Requests 是用Python語(yǔ)言編寫HTTP客戶端庫(kù),跟urllib、urllib2類似,基于 urllib,但比 urllib 更加方便,可以節(jié)約我們大量的工作,完全滿足 HTTP?測(cè)試需求,編寫爬蟲(chóng)和測(cè)試服務(wù)器響應(yīng)數(shù)據(jù)時(shí)經(jīng)常會(huì)用到。
Requests 的哲學(xué)是以 PEP 20 的習(xí)語(yǔ)為中心開(kāi)發(fā)的,所以它比 urllib 更加 Pythoner,更重要的一點(diǎn)是它支持 Python3?
Beautiful is better than ugly. (美麗優(yōu)于丑陋)
Explicit is better than implicit. (清楚優(yōu)于含糊)
Simple is better than complex. (簡(jiǎn)單優(yōu)于復(fù)雜)
Complex is better than complicated. (復(fù)雜優(yōu)于繁瑣)
Readability counts. (重要的是可讀性)
?
Requests 官網(wǎng):
https://pypi.python.org/pypi/requests
?
安裝 Requests
方式1)pip 安裝
pip install requests ? ? ?# python2.7pip3 install requests?? ?# python3.6
?
方式2)源碼安裝
下載?requests-2.18.2.tar.gz
解壓安裝:
tar zxvf requests-2.18.2.tar.gzcd requestspython setup.py install
驗(yàn)證安裝:
$ python Python 2.7.13 (v2.7.13:a06454b1afa1, Dec 17 2016, 12:39:47) [GCC 4.2.1 (Apple Inc. build 5666) (dot 3)] on darwin Type "help", "copyright", "credits" or "license" for more information. >>> import requests >>> requests
?
使用 Requests
requests 封裝了Python的urlib和urllib2,所以爬取網(wǎng)頁(yè)非常簡(jiǎn)潔
1. 爬取網(wǎng)頁(yè)
import requests # 爬取米撲科技首頁(yè) req = requests.get(url = "http://mimvp.com") print("status_code : " + str(req.status_code)) print("mimvp text : " + req.text) # 爬取米撲代理(含請(qǐng)求參數(shù)) req = requests.get(url="http://proxy.mimvp.com/free.php", params={"proxy":"out_tp","sort":"p_ping"}) print("status_code : " + str(req.status_code)) print("mimvp text : " + req.text)
爬取網(wǎng)頁(yè)非常簡(jiǎn)潔吧,Python urllib 三行代碼,requests只需要一行代碼搞定
urllib : ?urllib.urlopen("http://mimvp.com").read()
urllib2:?urllib2.urlopen("http://mimvp.com").read()
或者
import urllib2 req = urllib2.Request("http://mimvp.com") res = urllib2.urlopen(req) page = res.read()
?
requests 接口格式:
requests.get("https://mimvp.com/timeline.json") # GET請(qǐng)求 requests.post("http://mimvp.com/post") # POST請(qǐng)求 requests.put("http://mimvp.com/put") # PUT請(qǐng)求 requests.delete("http://mimvp.com/delete") # DELETE請(qǐng)求 requests.head("http://mimvp.com/get") # HEAD請(qǐng)求 requests.options("http://mimvp.com/get") # OPTIONS請(qǐng)求
?
requests 接口示例:
import requests requests.get("http://mimvp.com", params={"love": "mimvp"}) # GET參數(shù)實(shí)例 requests.post("http://mimvp.com", data={"love": "mimvp"}) # POST參數(shù)實(shí)例
?
Requests 設(shè)置代理
#!/usr/bin/env python # -*- encoding: utf-8 -*- # # Python requests 支持 http、https、socks4、socks5 # # 米撲代理示例: # http://proxy.mimvp.com/demo2.php # # 米撲代理購(gòu)買: # http://proxy.mimvp.com # # mimvp.com # 2016-09-16 import requests import ssl import socks, socket # 需要引入socks.py文件,請(qǐng)到米撲代理下載 mimvp_url = "http://proxy.mimvp.com/exist.php" mimvp_url2 = "https://proxy.mimvp.com/exist.php" mimvp_url3 = "https://apps.bdimg.com/libs/jquery-i18n/1.1.1/jquery.i18n.min.js" # 使用代理 http, https proxies = { "http" : "http://120.77.155.249:8888", "https" : "http://54.255.211.38:80", } req = requests.get(mimvp_url2, proxies=proxies, timeout=30, verify=False) print("mimvp text : " + req.text) # 使用代理 socks4 proxies = { "socks4" : "163.121.188.2:4000", } socks4_ip = proxies["socks4"].split(":")[0] socks4_port = int(proxies["socks4"].split(":")[1]) socks.setdefaultproxy(socks.PROXY_TYPE_SOCKS4, socks4_ip, socks4_port) socket.socket = socks.socksocket req = requests.get(mimvp_url2, timeout=30, verify=False) print("mimvp text : " + req.text) # 使用代理 socks5 proxies = { "socks5" : "190.9.58.211:45454", } socks5_ip = proxies["socks5"].split(":")[0] socks5_port = int(proxies["socks5"].split(":")[1]) socks.setdefaultproxy(socks.PROXY_TYPE_SOCKS5, socks5_ip, socks5_port) socket.socket = socks.socksocket req = requests.get(mimvp_url2, timeout=30, verify=False) print("mimvp text : " + req.text)
?
本示例采用的米撲代理,支持 http、https、socks4、socks5等多種協(xié)議,覆蓋全球120多個(gè)國(guó)家,中國(guó)34個(gè)省市
推薦米撲代理:?http://proxy.mimvp.com
?
?
參考推薦:
Python pyspider 安裝與開(kāi)發(fā)
Python3 urllib 用法詳解
PhantomJS 安裝與開(kāi)發(fā)
Node.js 安裝與開(kāi)發(fā)
Node.js SuperAgent 安裝與開(kāi)發(fā)
?
文章版權(quán)歸作者所有,未經(jīng)允許請(qǐng)勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。
轉(zhuǎn)載請(qǐng)注明本文地址:http://systransis.cn/yun/25655.html
摘要:是用語(yǔ)言編寫客戶端庫(kù),跟類似,基于,但比更加方便,可以節(jié)約我們大量的工作,完全滿足測(cè)試需求,編寫爬蟲(chóng)和測(cè)試服務(wù)器響應(yīng)數(shù)據(jù)時(shí)經(jīng)常會(huì)用到。 Requests 是用Python語(yǔ)言編寫HTTP客戶端庫(kù),跟urllib、urllib2類似,基于 urllib,但比 urllib 更加方便,可以節(jié)約我們大量的工作,完全滿足 HTTP?測(cè)試需求,編寫爬蟲(chóng)和測(cè)試服務(wù)器響應(yīng)數(shù)據(jù)時(shí)經(jīng)常會(huì)用到。Reque...
摘要:是用語(yǔ)言編寫客戶端庫(kù),跟類似,基于,但比更加方便,可以節(jié)約我們大量的工作,完全滿足測(cè)試需求,編寫爬蟲(chóng)和測(cè)試服務(wù)器響應(yīng)數(shù)據(jù)時(shí)經(jīng)常會(huì)用到。 Requests 是用Python語(yǔ)言編寫HTTP客戶端庫(kù),跟urllib、urllib2類似,基于 urllib,但比 urllib 更加方便,可以節(jié)約我們大量的工作,完全滿足 HTTP?測(cè)試需求,編寫爬蟲(chóng)和測(cè)試服務(wù)器響應(yīng)數(shù)據(jù)時(shí)經(jīng)常會(huì)用到。Reque...
摘要:可通過(guò)以下命令生成文件運(yùn)行虛擬環(huán)境可使用以下命令來(lái)運(yùn)行項(xiàng)目或者啟動(dòng)虛擬環(huán)境的環(huán)境直接運(yùn)行并不會(huì)出現(xiàn)命令行,是應(yīng)為沒(méi)有配置環(huán)境變量。 本文最早發(fā)布與個(gè)人博客:http://www.pylixm.cc 最近常看到pipenv這個(gè)管理工具,今天有時(shí)間查了下,是 Kennethreitz 大神的作品,看了下github的倉(cāng)庫(kù),是2017年1月份創(chuàng)建的,僅僅一年的時(shí)間變獲得了7k+的收藏,最新一...
閱讀 2008·2023-04-25 16:19
閱讀 3120·2021-11-24 09:39
閱讀 838·2021-11-16 11:44
閱讀 1699·2019-08-29 12:52
閱讀 1148·2019-08-26 13:33
閱讀 1083·2019-08-26 10:26
閱讀 2213·2019-08-23 16:42
閱讀 2577·2019-08-23 14:37