目录
本文介绍几种在Python里使用代理的方式,假定代理运行在本机,HTTP代理端口为1231,SOCKS5代理端口为8080。
HTTP全局代理:环境变量方式
在命令行里配置如下环境变量,然后执行Python脚本,Python在进行网络请求时就会使用配置的代理。
export http_proxy="http://127.0.0.1:1231"
export https_proxy="http://127.0.0.1:1231"
HTTP全局代理:代码实现方式
也可以在Python代码里添加如下内容,效果与上面的方式相同:
import os
os.environ["http_proxy"] = "http://127.0.0.1:1231"
os.environ["https_proxy"] = "http://127.0.0.1:1231"
SOCKS全局代理
通过设置环境变量的方式通常只能使用HTTP代理。要使用全局SOCKS代理可以使用tsocks.
安装tsocks后,编辑/etc/tsocks.conf
,以使用端口为8080的本地SOCKS5代理为例:
server = 127.0.0.1
server_port = 8080
server_type = 5
配置完成后在原来的脚本执行命令前添加tsocks即可使用,例如:
tsocks python3 myscript.py
针对部分请求设置代理
前面的几种方式会为所有的HTTP请求设置代理,如果只想让部分请求使用代理,可以使用requests的proxies参数:
import requests
proxies = {'http': "socks5://127.0.0.1:8080",'https': "socks5://127.0.0.1:8080"}
print(requests.get(url,proxies=proxies).content)
例如下载图片,可使用:
with requests.get(url,proxies=proxies,stream=True) as r:
if r.status_code != 200:
return
with open(path,'wb') as f:
for chunk in r.iter_content(chunk_size=8192):
f.write(chunk)
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。