之前看到 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)