摘要:是用语言编写客户端库,跟类似,基于,但比更加方便,可以节约我们大量的工作,完全满足测试需求,编写爬虫和测试服务器响应数据时经常会用到。
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 安装与开发
文章版权归作者所有,未经允许请勿转载,若此文章存在违规行为,您可以联系管理员删除。
转载请注明本文地址:https://www.ucloud.cn/yun/40742.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+的收藏,最新一...
阅读 1751·2021-11-23 09:51
阅读 1192·2021-11-18 10:02
阅读 943·2021-10-25 09:44
阅读 2068·2019-08-26 18:36
阅读 1584·2019-08-26 12:17
阅读 1117·2019-08-26 11:59
阅读 2716·2019-08-23 15:56
阅读 3306·2019-08-23 15:05