Python 请求设置代理
前言
由于某些原因(保护隐私),不希望对方看到自己的请求IP等信息,我们可以借助 IP 代理,让代理服务器作为中间人,从而保护我们的隐私。下面我们将以 Python 中 requests 网络库为中心展开。
使用
目前有两种主流的设置代理方法:一个是 http 协议,一个是 socks 协议。
HTTP/HTTPS
在代码中直接指定代理服务:
1 | import requests |
也可以通过 HTTP_PROXY
和 HTTPS_PROXY
变量设置代理环境:
1 | $ export HTTP_PROXY="http://10.10.1.10:3128" |
如果代理服务器有 http 基本身份验证,可以使用http://user:password@host/
语法,eg:
1 | proxies = {'http': 'http://user:pass@10.10.1.10:3128/'} |
为特定的 scheme
和 host
提供 代理,用 scheme://hostname
作为 key。这将匹配给定的 scheme 和 确定的hostname 的任意请求。
1 | proxies = {'http://10.20.1.128': 'http://10.10.1.10:5323'} |
注意:代理中 URLs 必须包含 scheme.
SOCKS
安装 requests
依赖的 socks
特性:
1 | pip install requests[socks] |
完成安装依赖后,socks 代理就像使用 http 代理一样:
1 | proxies = { |
注意:当 socks5
作为 scheme 时,DNS 解析发生在 客户端,并非在代理服务器。如果你想在代理服务器上进行解析,请用 socks5h
作为 scheme。
Example
仅供参考,在使用过程中,请结合自己需要进行更改。
1 | import sys, os |
在这里推荐一个获取公网IP的网址 https://api.getmyip.me ,能查看是否是透明代理还是匿名代理,同时支持 http 和 https 访问。
参考资料
文档信息
- 版权声明:自由转载-保持署名-非商用-非衍生 ( CC BY-NC-ND 4.0 )