我想在Python3 urllib.request.urlopen()中使用TOR,但我发现的所有示例都使用Python2。
https://code.google.com/p/socksipy-branch/
我遇到了很多但是我无法让它与Python3一起使用,即使它声明分支是兼容的。
我认为TOR是一个袜子代理,但是Python3似乎不包含任何像Python2这样的袜子库?
有没有人有工作的例子?
答案 0 :(得分:1)
您必须通过套接字执行DNS解析
def getaddrinfo(*args):
return [(socket.AF_INET, socket.SOCK_STREAM, 6, '', (args[0], args[1]))]
socket.getaddrinfo = getaddrinfo
来源:GitHub
答案 1 :(得分:0)
我建议使用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)