requests使用代理进行网络请求
requests支持HTTP、HTTPS、SOCKS等代理请求;
使用HTTP、HTTPS代理
如果要使用HTTP代理或HTTPS代理,你可以在任意请求方法中传入proxies参数来配置单个请求:
import requests
proxies = {
"http": "http://10.10.1.10:3128",
"https": "http://10.10.1.10:1080",
}
requests.get("http://example.org", proxies=proxies)
你也可以通过配置环境变量HTTP_PROXY
和HTTPS_PROXY
来配置代理,使得所有请求都使用代理:
export HTTP_PROXY="http://10.10.1.10:3128"
export HTTPS_PROXY="http://10.10.1.10:1080"
如果你的代理使用了HTTP Basic Auth
,即使用了密码验证,应该使用http://user:password@host/
的语法,例:
proxies = {
"http": "http://user:pass@10.10.1.10:3128/",
}
使用SOCKS代理
在requests 2.10.0后支持了SOCKS协议的代理功能;这是一个可选功能,如果你要使用,需要进行安装:
pip3 install requests[socks]
安装好后即可使用,使用方法和HTTP代理一样:
proxies = {
'http': 'socks5://user:pass@host:port',
'https': 'socks5://user:pass@host:port'
}