摘要:是用語言編寫客戶端庫,跟類似,基于,但比更加方便,可以節約我們大量的工作,完全滿足測試需求,編寫爬蟲和測試服務器響應數據時經常會用到。
Requests 是用Python語言編寫HTTP客戶端庫,跟urllib、urllib2類似,基于 urllib,但比 urllib 更加方便,可以節約我們大量的工作,完全滿足 HTTP?測試需求,編寫爬蟲和測試服務器響應數據時經常會用到。
Requests 的哲學是以 PEP 20 的習語為中心開發的,所以它比 urllib 更加 Pythoner,更重要的一點是它支持 Python3?
Beautiful is better than ugly. (美麗優于丑陋)
Explicit is better than implicit. (清楚優于含糊)
Simple is better than complex. (簡單優于復雜)
Complex is better than complicated. (復雜優于繁瑣)
Readability counts. (重要的是可讀性)
?
Requests 官網:
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
驗證安裝:
$ 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,所以爬取網頁非常簡潔
1. 爬取網頁
import requests # 爬取米撲科技首頁 req = requests.get(url = "http://mimvp.com") print("status_code : " + str(req.status_code)) print("mimvp text : " + req.text) # 爬取米撲代理(含請求參數) 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)
爬取網頁非常簡潔吧,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參數實例 requests.post("http://mimvp.com", data={"love": "mimvp"}) # POST參數實例
?
Requests 設置代理
#!/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等多種協議,覆蓋全球120多個國家,中國34個省市
推薦米撲代理:?http://proxy.mimvp.com
?
?
參考推薦:
Python pyspider 安裝與開發
Python3 urllib 用法詳解
PhantomJS 安裝與開發
Node.js 安裝與開發
Node.js SuperAgent 安裝與開發
?
文章版權歸作者所有,未經允許請勿轉載,若此文章存在違規行為,您可以聯系管理員刪除。
轉載請注明本文地址:http://specialneedsforspecialkids.com/yun/25655.html
摘要:是用語言編寫客戶端庫,跟類似,基于,但比更加方便,可以節約我們大量的工作,完全滿足測試需求,編寫爬蟲和測試服務器響應數據時經常會用到。 Requests 是用Python語言編寫HTTP客戶端庫,跟urllib、urllib2類似,基于 urllib,但比 urllib 更加方便,可以節約我們大量的工作,完全滿足 HTTP?測試需求,編寫爬蟲和測試服務器響應數據時經常會用到。Reque...
摘要:是用語言編寫客戶端庫,跟類似,基于,但比更加方便,可以節約我們大量的工作,完全滿足測試需求,編寫爬蟲和測試服務器響應數據時經常會用到。 Requests 是用Python語言編寫HTTP客戶端庫,跟urllib、urllib2類似,基于 urllib,但比 urllib 更加方便,可以節約我們大量的工作,完全滿足 HTTP?測試需求,編寫爬蟲和測試服務器響應數據時經常會用到。Reque...
摘要:可通過以下命令生成文件運行虛擬環境可使用以下命令來運行項目或者啟動虛擬環境的環境直接運行并不會出現命令行,是應為沒有配置環境變量。 本文最早發布與個人博客:http://www.pylixm.cc 最近常看到pipenv這個管理工具,今天有時間查了下,是 Kennethreitz 大神的作品,看了下github的倉庫,是2017年1月份創建的,僅僅一年的時間變獲得了7k+的收藏,最新一...
閱讀 1966·2023-04-25 16:19
閱讀 3091·2021-11-24 09:39
閱讀 829·2021-11-16 11:44
閱讀 1688·2019-08-29 12:52
閱讀 1138·2019-08-26 13:33
閱讀 1073·2019-08-26 10:26
閱讀 2200·2019-08-23 16:42
閱讀 2567·2019-08-23 14:37