接口文档及接口测试学习

『居善地』接口测试 — 10.补充:Requests库中prox

2021-01-05  本文已影响0人  繁华似锦Fighting

1、代理的了解


在上图中我们可以把Web server看成是Google服务器,正常情况下在国内是无法访问Google服务器的,这个时候就需要使用VPN软件,帮助我们发送请求来访问Google服务器。然后再通过VPN软件把Google服务器响应的结果返回给我们的浏览器,这个VPN软件就相当一个代理的作用,帮助我们发送请求,帮助我们接收响应。

2、代理的分类

正常情况下,我们使用浏览器来访问百度服务器,可以正常的直接的进行访问。

(1)正向代理

正向代理类似一个跳板机,代理访问外部资源。

比如我们国内访问谷歌,直接访问访问不到,我们可以通过一个正向代理服务器,请求发到代理服,代理服务器能够访问谷歌,这样由代理取到谷歌服务器返回的数据,再返回给我们,这样我们就能访问谷歌了。

(2)反向代理

反向代理(Reverse Proxy)实际运行方式是指,以代理服务器来接受internet上的连接请求,然后将请求转发给内部网络上的服务器,并将从服务器上得到的结果,返回给internet上请求连接的客户端,此时代理服务器对外就表现为一个服务器。


(3)总结

正向代理: 找黄牛买票。

反向代理: 租房的中介 。

参考:https://www.cnblogs.com/taostaryu/p/10547132.html

3、Requests库使用代理

只需要添加proxies参数即可,接收字典格式的参数。

示例:

# 1.导入requests库
import requests

# 明确要访问的url地址
url = "https://ip.tool.chinaz.com/"

# 明确请求头信息
headers = {
    "User-Agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/66.0.3359.139 Safari/537.36",
}

# 设置代理服务器地址
# 如果发送的是http请求,就使用http请求的代理,如果发送的是https请求,就使用一个https请求的代理。
proxies = {"https": "https://58.220.95.86:9401", "http": "http://113.214.13.1:1080"}

# 发送请求
response = requests.get(url=url, headers=headers, proxies=proxies)
# 查看响应结果的状态码
print(response.status_code)
# 获得响应结果的源码
print(response.text)

说明一下:

访问url = "https://ip.tool.chinaz.com/"这个地址的并不是我们自己的IP地址,而是proxies属性中定义的IP地址。实际上我们把请求发送给代理服务器,代理服务器帮我们访问了上面的网址。

验证一下:

4、总结

为什么需要使用代理?

这里我们就知道Requests库中proxies代理如何使用,了解其原理就可以了。

上一篇 下一篇

猜你喜欢

热点阅读