我在使用stem时遇到错误
我正在尝试通过我的脚本来更换TOR的IP地址。
这是我用来在TOR中执行NEWNYM的函数:
from stem.connection import connect_port
from stem import Signal
from stem.control import Controller
def connectTor():
controller = connect_port(address='127.0.0.1', port=9150)
controller.connect_port()
controller.authenticate()
controller.signal(Signal.NEWNYM)
但是我遇到了错误:
TypeError: __init__() takes exactly 2 arguments (3 given)
我哪里做错了?你能帮我吗?谢谢你!
更新:完整的错误追踪信息:
Traceback (most recent call last):
File "D:/python/projects/tor/main.py", line 33, in <module>
connectTor()
File "D:/python/projects/tor/main.py", line 15, in connectTor
controller = connect_port(port=9150)
File "C:\Python27\32\lib\site-packages\stem\connection.py", line 171, in connect_port
control_port = stem.socket.ControlPort(address, port)
File "C:\Python27\32\lib\site-packages\stem\socket.py", line 350, in __init__
self.connect()
File "C:\Python27\32\lib\site-packages\stem\socket.py", line 223, in connect
self._socket = self._make_socket()
File "C:\Python27\32\lib\site-packages\stem\socket.py", line 376, in _make_socket
control_socket.connect((self._control_addr, self._control_port))
File "D:\python\projects\tor\socks.py", line 369, in connect
self.__negotiatesocks5(destpair[0],destpair[1])
File "D:\python\projects\tor\socks.py", line 236, in __negotiatesocks5
raise Socks5Error(ord(resp[1]),_generalerrors[ord(resp[1])])
TypeError: __init__() takes exactly 2 arguments (3 given)
附言:抱歉我的英语不好……
1 个回答
0
connect_port() 方法会给你一个控制器实例。这个控制器本身没有自己的 'connect_port()' 方法,所以我很惊讶为什么 "controller.connect_port()" 这一行没有出错。
频繁更换你的 IP 地址是不被推荐的,因为这会对网络造成伤害。请查看...
https://stem.torproject.org/faq.html#how-do-i-request-a-new-identity-from-tor