TOR ネットワークを介して urllib リクエストをルーティングする方法は?
10377 次
3 に答える
12
これは私にとってはうまくいきます(urllib2を使用して、urllibを試していません):
def req(url):
proxy_support = urllib2.ProxyHandler({"http" : "127.0.0.1:8118"})
opener = urllib2.build_opener(proxy_support)
opener.addheaders = [('User-agent', 'Mozilla/5.0')]
return opener.open(url).read()
print req('http://google.com')
于 2010-07-24T01:04:08.437 に答える
6
Torはプロキシとして機能しますよね?したがって、「urllibでプロキシを使用するにはどうすればよいですか?」と自問してください。
さて、ドキュメントを見ると、最初に目にするのは
urllib.urlopen(url[, data[, proxies]])
これは私にはかなり示唆に富むようです...
于 2009-04-02T20:15:02.877 に答える
1
私はこの投稿に基づいて解決策を見つけました: Python 3.2 : urllib, SSL and TOR through socket : error with fileno function
変更されたコードは次のとおりです。
import socks
import socket
# This function has no DNS resolve
# it need to use the real ip adress to connect instead of www.google.com
def create_connection_fixed_dns_leak(address, timeout=None, source_address=None):
sock = socks.socksocket()
sock.connect(address)
return sock
# MUST BE SET BEFORE IMPORTING URLLIB
socks.setdefaultproxy(socks.PROXY_TYPE_SOCKS5, "127.0.0.1", 9050)
# patch the socket module
socket.socket = socks.socksocket
socket.create_connection = create_connection_fixed_dns_leak
from urllib import request
if __name__ == "__main__":
for proxy in request.getproxies():
print(str(proxy))
url = 'http://url_of_hidden_service.onion:port'
req = request.Request(url)
res = request.urlopen(req)
print(str(res.read()))
于 2014-12-12T05:02:53.837 に答える