我使用requests
和tor
完全是新手。
我正在使用的代码:
def get_tor_session():
session = requests.session()
# Tor uses the 9050 port as the default socks port
session.proxies = {'http': 'socks5://127.0.0.1:9050',
'https': 'socks5://127.0.0.1:9050'}
return session
session = get_tor_session()
print(session.get("http://httpbin.org/ip").text)
我一直收到以下错误:
引发ConnectionError(e,request = request) requests.exceptions.ConnectionError:SOCKSHTTPConnectionPool(host =' httpbin.org',port = 80):url:/ ip超出了最大重试次数(由NewConnectionError引起(':无法建立新连接) :[WinError 10061]无法建立连接,因为目标计算机主动拒绝它',))
我查看了各种答案,但无法确定问题所在。
答案 0 :(得分:2)
以下是适用于我的代码:
/admin
检查以确保Tor在您的计算机上运行,并且Windows / Defender上的防火墙未阻止您尝试访问的端口。
答案 1 :(得分:0)
我遇到了同样的问题,下面的解决方案解决了它。
SOCKSHTTPConnectionPool(host='httpbin.org', port=80)
根据这一行,你电脑的监听端口配置了80端口,需要改成你在torrc文件中配置的SOCKSPort,我的SOCKSPort=9050,默认CONTROL PORT设置为9051。 How to configure a tor proxy on windows? 此链接解释了如何配置 tor。 确保 Tor 浏览器在后台运行。 希望这些信息有帮助。
答案 2 :(得分:0)
您可以像这样更改代码:
def __init__(self):
self.header = {'Content-Type': 'application/x-www-form-urlencoded'}
# ***** proxy *****#
def renew_connection(self):
with db.Controller.from_port(port=9051) as controller:
controller.authenticate(password='my_password')
controller.signal(Signal.NEWNYM)
controller.close()
def request_tor(self, url, headers, post_fields):
self.renew_connection()
session = requests.session()
session.proxies = {}
session.proxies['http'] = 'socks5h://localhost:9050'
r = session.post(url, headers=headers, data=post_fields)