之前看到 Github 上有人提 issue 问是否支持 SOCKS 代理,官方终于在 Version 2.10.0 之后将 SOCKS 作为一个可选特性加入了支持,需要安装第三方库。
$ pip install 'requests[socks]'
Usage:
import requests
proxies = {
'http':'socks5://user:pass@host:port',
'https':'socks5://user:pass@host:port'
}
requests.get('https://httpbin.org/ip', proxies=proxies)
pip freeze
看多安装了一个 PySocks 库,没有这个库 requests 会提示不是一个被支持的 SCHEMA。PySocks 可以单独安装,不仅支持 requests ,也可以绑定在当前 socket 上,这样诸如 urllib 也可以走 socks。
$ pip install PySocks
Usage:
import socket
import socks
import requests
socks.set_default_proxy(socks.SOCKS5, '127.0.0.1', 1080, True, user, pass)
socket.socket = socks.socksocket
print(requests.get('https://httpbin.org/ip').text)