启动Tor Brows失败

2024-09-29 19:29:40 发布

您现在位置:Python中文网/ 问答频道 /正文

我试了很多次:

from tbselenium.tbdriver import TorBrowserDriver
 with TorBrowserDriver("/path/to/TorBrowserBundle/") as driver:
    driver.get('https://check.torproject.org')

*从这里;https://github.com/webfp/tor-browser-selenium

和我的一样

^{pr2}$

但是,加载TOR失败:

tbselenium.exceptions.TBDriverPathError: TBB path is not a directory C:\Program Files (x86)\TOR\Tor Browser\Browser[image]irefox.exe

失败的“[image]”是: https://imgur.com/LqwV3qv

为什么会变成那样?在


Tags: topathfromhttpsimageimportbrowsercom
3条回答

我刚刚修改了webfp/torbrowser selenium的一些文件,现在它可以在windows-yipie下工作了。唯一的问题是,tor浏览器必须已经启动。在

pip安装后,在C:\XXX\PythonXXX\Lib\site packages\tbselenium下修改以下文件:

  • 在普通.py在
  • 在实用工具.py在
  • 在tbdriver.py在

在普通.py修改:

  • 默认的二进制路径从“firefox”到火狐.exe““
  • 默认二进制路径“TOR”to托尔.exe““

在tbdriver.py修改:

  • “socks_端口=cm.STEM_SOCKS_端口“到”socks U端口=cm.TBB_袜子_端口““

在实用工具.py修改:

  • 在“使用阀杆启动”中,删除整个回路

在Windows下工作的代码(已打开Tor浏览器):

from tbselenium.tbdriver import TorBrowserDriver
import tbselenium.common as cm
from tbselenium.utils import launch_tbb_tor_with_stem

launch_tbb_tor_with_stem("C:\\Users\\CodeCrusha\\Desktop\\Tor Browser") # I think you can remove this, but maybe some future usages need that 
with TorBrowserDriver("C:\\Users\\CodeCrusha\\Desktop\\Tor Browser", tor_cfg=cm.USE_STEM) as driver:
    driver.load_url("https://check.torproject.org", wait_on_page=3, wait_for_page_body=True)
    print(driver.find_element_by("h1.on").text)
    print(driver.find_element_by(".content > p").text)

让我听听你的进一步发现/问题。也许有更多的文件需要修改才能让它在Windows下完全正常工作,但据我所知,它运行得相当不错。 每次,一个Tor浏览器都会通过脚本创建,它有新的IP等等。Tor浏览器的“第一次”启动不需要刷新,它只需要在那里。在

由于您使用的库不支持Windows或macOS https://github.com/webfp/tor-browser-selenium#compatibility,因此在author或任何其他贡献者将其用于除Debian和Ubuntu之外的其他平台之前,将无法使用该库。在

一些用户已经在这个存储库的问题上提出了这个问题https://github.com/webfp/tor-browser-selenium/issues/81,这里有一些线索可以研究,让它在macOS上工作https://github.com/webfp/tor-browser-selenium/issues/106

如果您需要隐私,一个可能的解决方案是启动Tor(它将使用它的默认端口9150),并使用PySocks来路由通信量,Python3示例

import socks
import socket
from urllib.request import urlopen

socks.set_default_proxy(socks.SOCKS5, "localhost", 9150)
socket.socket = socks.socksocket
print(urlopen('http://icanhazip.com').read())

或者使用webdriver的相同想法

^{pr2}$

Backslashes have special meaning on a ^{}。为了按字面意思将它们用作字符,需要对它们进行转义:

from tbselenium.tbdriver import TorBrowserDriver
with TorBrowserDriver('C:\\Program Files (x86)\\TOR\\Tor Browser\\Browser\\firefox.exe') as driver:
    driver.get('https://check.torproject.org')

相关问题 更多 >

    热门问题