我想将 TOR 与 Python3 urllib.request.urlopen() 一起使用,但我发现的所有示例都使用 Python2。
https://code.google.com/p/socksipy-branch/
我遇到了 socksipy,但即使它声明分支兼容,我也无法让它与 Python3 一起使用。
我认为 TOR 是一个袜子代理,但 Python3 似乎不包含任何像 Python2 这样的袜子库?
有没有人有工作的例子?
我想将 TOR 与 Python3 urllib.request.urlopen() 一起使用,但我发现的所有示例都使用 Python2。
https://code.google.com/p/socksipy-branch/
我遇到了 socksipy,但即使它声明分支兼容,我也无法让它与 Python3 一起使用。
我认为 TOR 是一个袜子代理,但 Python3 似乎不包含任何像 Python2 这样的袜子库?
有没有人有工作的例子?
我建议使用httplib2
并socks
打包通过 socks 代理进行 HTTP 请求。
我用 urllib 做了很多尝试,但使用 httplib2 更容易。
import socks
import httplib2
proxy = httplib2.ProxyInfo(proxy_type=socks.PROXY_TYPE_SOCKS5,
proxy_host='127.0.0.1',
proxy_port=9666)
http = httplib2.Http(proxy_info=proxy, timeout=10)
# do requests
headers, message = http.request(url, "GET", body=body, headers=headers)
您必须通过套接字执行 DNS 解析
def getaddrinfo(*args):
return [(socket.AF_INET, socket.SOCK_STREAM, 6, '', (args[0], args[1]))]
socket.getaddrinfo = getaddrinfo
来源:GitHub