gpt4 book ai didi

python - 使用 Tor 和 Selenium 获得新的身份。出现错误 "IncorrectSocketType: unable to use the control socket"

转载 作者:太空宇宙 更新时间:2023-11-03 20:28:58 25 4
gpt4 key购买 nike

我正在尝试使用Python的stem模块向tor发送“新身份”信号。我通过阅读 stackoverflow 中的其他问题获得了大部分代码,但我似乎找不到解决此错误的方法。我希望能够用 Selenium 控制 Tor 并以任何可能的方式获得新的身份。我只是使用 Stem,因为这似乎是我所做的研究的方法,但我愿意改变。(我在 Windows 上)

我尝试过改变

profile.set_preference('network.proxy.socks_port', 9050)

90509051但我明白了

stem.SocketError: [WinError 10061] No connection could be made because the target machine actively refused it

我已经看过这篇文章,但我的 torrc 文件中没有设置任何密码 Unable to use Stem and Tor in Python to change my IP address?

我也尝试过更改为 CookieAuthentication 0,但又改回 1,因为也没有成功。

我使用这种方法用selenium打开tor:

def setup():
torexe = os.popen(r'D:\Program files\tor\Tor Browser\Browser\TorBrowser\Tor\tor.exe')
profile = FirefoxProfile(r'D:\Program files\tor\Tor Browser\Browser\TorBrowser\Data\Browser\profile.default')
profile.set_preference('network.proxy.type', 1)
profile.set_preference('network.proxy.socks', '127.0.0.1')
profile.set_preference('network.proxy.socks_port', 9050)
profile.set_preference("network.proxy.socks_remote_dns", False)
profile.update_preferences()
driver = webdriver.Firefox(firefox_profile= profile, executable_path=r'C:\Windows\geckodriver.exe')
driver.get("http://check.torproject.org")

并尝试使用此方法来调用 tor 的新身份:

def new_identity():
with Controller.from_port(port = 9050) as controller:
controller.authenticate()
controller.signal(Signal.NEWNYM)

我的 torrc 文件也丢失了我在互联网上看到的很多内容,但我也读到,我应该让它看起来像这样:

# This file was generated by Tor; if you edit it, comments will not be preserved
# The old torrc file was renamed to torrc.orig.1 or similar, and Tor will ignore it
ControlPort 9050
CookieAuthentication 0

DataDirectory D:\Program files\tor\Tor Browser\Browser\TorBrowser\Data\Tor
GeoIPFile D:\Program files\tor\Tor Browser\Browser\TorBrowser\Data\Tor\geoip
GeoIPv6File D:\Program files\tor\Tor Browser\Browser\TorBrowser\Data\Tor\geoip6

我目前遇到的错误是:

raise IncorrectSocketType('unable to use the control socket')
stem.connection.IncorrectSocketType: unable to use the control socket

最佳答案

默认的SocksPort是9050,ControlPort(默认情况下不启用)是9051。

您需要这两个配置选项才能获得您想要的功能。

浏览器 SOCKS 配置应使用端口 9050,而您的 Stem 的 Python 代码应使用 9051。首先,将 CookieAuthentication 和 PasswordAuthentication 选项保留在外,这样您应该能够在无需身份验证的情况下进行本地连接。

关于python - 使用 Tor 和 Selenium 获得新的身份。出现错误 "IncorrectSocketType: unable to use the control socket",我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57642752/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com