一、请求方法里面的:proxies 命名参数
1.fiddle 抓HTTPS 设置、
image.png
- 打开百度 随便输入点东西 搜索一下
image.png
- 浏览器开启代理
image.png
- 脚本编写
可以通过任意请求方法的proxies 命名参数来指定代理方式。其中http协议和https协议相互独立,设置方式为
proxies = {
"http": "http://127.0.0.1:8888",
"https": "http://127.0.0.1:8888",
}
import requests
url = 'http://www.baidu.com'
proxies = {
"http": "http://127.0.0.1:8888",
"https": "http://127.0.0.1:8888",
}
res = requests.get(url=url, proxies=proxies)
print(res.text.encode("utf-8"))
image.png
二、设置 HTTP_PROXY 和 HTTPS_PROXY环境变量
除了通过指定proxies 命名参数外,requests还提供了使用环境变量的方式来添加代理。requests提供HTTP_PROXY 和 HTTPS_PROXY环境变量,其中HTTP_PROXY为http协议设置代理,HTTPS_PROXY用于设置https协议的代理方式 。和命名参数相比,环境变量有以下优点:
- 作用范围广,可作用于所有的请求
- 可插拔,设置环境变量使用代理,不设置则不使用代理。
- 若代理主机变动,代码无需修改,更优雅。
- 还是和上篇设置fiddler代理一样,演示下采用环境变量的方式设置代理。
设置环境变量(设置环境变量后,重启电脑才会生效)
image.png
设置完成之后,写requests请求的时候就不用传参数proxies了。浏览器代理也不用手动去设置了,当你开启fiddler需要抓包的时候,fiddler回去开启代理,完成抓包。
import requests
url = 'http://www.baidu.com'
res = requests.get(url=url)
print(res.text.encode("utf-8"))
将上面代码再发送一次,浏览器也不要去勾选代理,尝试一下抓包是否能成功。
image.png