摘要:是用語言編寫客戶端庫,跟類似,基于,但比更加方便,可以節(jié)約我們大量的工作,完全滿足測試需求,編寫爬蟲和測試服務(wù)器響應(yīng)數(shù)據(jù)時經(jīng)常會用到。
Requests 是用Python語言編寫HTTP客戶端庫,跟urllib、urllib2類似,基于 urllib,但比 urllib 更加方便,可以節(jié)約我們大量的工作,完全滿足 HTTP?測試需求,編寫爬蟲和測試服務(wù)器響應(yīng)數(shù)據(jù)時經(jīng)常會用到。
Requests 的哲學(xué)是以 PEP 20 的習(xí)語為中心開發(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. (簡單優(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)頁非常簡潔
1. 爬取網(wǎng)頁
import requests # 爬取米撲科技首頁 req = requests.get(url = "http://mimvp.com") print("status_code : " + str(req.status_code)) print("mimvp text : " + req.text) # 爬取米撲代理(含請求參數(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)頁非常簡潔吧,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請求 requests.post("http://mimvp.com/post") # POST請求 requests.put("http://mimvp.com/put") # PUT請求 requests.delete("http://mimvp.com/delete") # DELETE請求 requests.head("http://mimvp.com/get") # HEAD請求 requests.options("http://mimvp.com/get") # OPTIONS請求
?
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 # # 米撲代理購買: # http://proxy.mimvp.com # # mimvp.com # 2016-09-16 import requests import ssl import socks, socket # 需要引入socks.py文件,請到米撲代理下載 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多個國家,中國34個省市
推薦米撲代理:?http://proxy.mimvp.com
?
?
參考推薦:
Python pyspider 安裝與開發(fā)
Python3 urllib 用法詳解
PhantomJS 安裝與開發(fā)
Node.js 安裝與開發(fā)
Node.js SuperAgent 安裝與開發(fā)
?
文章版權(quán)歸作者所有,未經(jīng)允許請勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。
轉(zhuǎn)載請注明本文地址:http://specialneedsforspecialkids.com/yun/40742.html
摘要:是用語言編寫客戶端庫,跟類似,基于,但比更加方便,可以節(jié)約我們大量的工作,完全滿足測試需求,編寫爬蟲和測試服務(wù)器響應(yīng)數(shù)據(jù)時經(jīng)常會用到。 Requests 是用Python語言編寫HTTP客戶端庫,跟urllib、urllib2類似,基于 urllib,但比 urllib 更加方便,可以節(jié)約我們大量的工作,完全滿足 HTTP?測試需求,編寫爬蟲和測試服務(wù)器響應(yīng)數(shù)據(jù)時經(jīng)常會用到。Reque...
摘要:是用語言編寫客戶端庫,跟類似,基于,但比更加方便,可以節(jié)約我們大量的工作,完全滿足測試需求,編寫爬蟲和測試服務(wù)器響應(yīng)數(shù)據(jù)時經(jīng)常會用到。 Requests 是用Python語言編寫HTTP客戶端庫,跟urllib、urllib2類似,基于 urllib,但比 urllib 更加方便,可以節(jié)約我們大量的工作,完全滿足 HTTP?測試需求,編寫爬蟲和測試服務(wù)器響應(yīng)數(shù)據(jù)時經(jīng)常會用到。Reque...
摘要:可通過以下命令生成文件運(yùn)行虛擬環(huán)境可使用以下命令來運(yùn)行項(xiàng)目或者啟動虛擬環(huán)境的環(huán)境直接運(yùn)行并不會出現(xiàn)命令行,是應(yīng)為沒有配置環(huán)境變量。 本文最早發(fā)布與個人博客:http://www.pylixm.cc 最近常看到pipenv這個管理工具,今天有時間查了下,是 Kennethreitz 大神的作品,看了下github的倉庫,是2017年1月份創(chuàng)建的,僅僅一年的時間變獲得了7k+的收藏,最新一...
閱讀 1808·2021-11-23 09:51
閱讀 1268·2021-11-18 10:02
閱讀 963·2021-10-25 09:44
閱讀 2099·2019-08-26 18:36
閱讀 1619·2019-08-26 12:17
閱讀 1146·2019-08-26 11:59
閱讀 2746·2019-08-23 15:56
閱讀 3350·2019-08-23 15:05