在 Python 的 requests 库中,使用代理服务器可以让你通过不同的网络路由发送 HTTP 请求。代理服务器可以帮助隐藏真实 IP 地址、绕过地理限制或进行负载均衡等操作。
什么是代理?
代理服务器是一种中间服务器,它位于客户端(你的代码)和目标服务器(你要请求的服务器)之间。使用代理服务器,你的请求会首先发送到代理,然后代理再将请求转发给目标服务器,目标服务器的响应也会通过代理返回给你。
代理的使用在数据抓取、访问受限网站、提高隐私保护等场景中非常有用。
在 requests 中使用代理
requests 支持HTTP、HTTPS、SOCKS等代理请求;
使用HTTP、HTTPS代理
如果要使用 HTTP 代理或 HTTPS 代理,你可以在任意请求方法中传入proxies
参数来配置单个请求:
在这个例子中,http 请求将通过http://proxy1:8080
发送,https 请求将通过https://proxy2.com:8080
发送;
通过环境变量设置代理
除了在代码中明确传递proxies
参数,还可以通过环境变量配置代理,requests 库会自动读取这些环境变量并应用代理设置。
Windows 环境变量设置命令
Linux、macOS 环境变量设置命令
使用SOCKS代理
requests 支持 SOCKS 协议的代理功能;这是一个可选功能,如果你要使用,需要进行安装:
在用法上和 HTTP、HTTPS 代理没有太大区别;
代理池
如果你需要频繁更换代理以避免被网站屏蔽,可以创建一个代理池,并随机选择代理。示例代码如下: