无法启动Tor浏览器

时间:2018-04-23 17:54:49

标签: python selenium tor

我多次尝试过:

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

以我的身份

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')

但是,未能加载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

为什么会这样?

3 个答案:

答案 0 :(得分:1)

Keras documentation。为了逐字地使用它们,你需要逃避它们:

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')

答案 1 :(得分:1)

由于您使用的是不支持Windows或macOS https://github.com/webfp/tor-browser-selenium#compatibility的库,因此在作者或任何其他贡献者为除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())

或使用网络驱动程序的相同想法

from selenium import webdriver
from selenium.webdriver.chrome.options import Options

chrome_options = Options()
chrome_options.add_argument("--proxy-server=socks5://127.0.0.1:9150")
driver = webdriver.Chrome(executable_path='chromedriver', options=chrome_option$

driver.get('https://whatismyipaddress.com/')

答案 2 :(得分:0)

我刚刚修改了webfp / tor-browser-selenium的一些文件,它现在在Windows下工作-yipie。唯一的事情是,必须先启动Tor浏览器。

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

  • common.py
  • utils.py
  • tbdriver.py

在common.py中修改:

  • 从“ firefox”到“ firefox.exe”的DEFAULT_TBB_FX_BINARY_PATH
  • 从DEFAULT_TOR_BINARY_PATH“ tor”到“ tor.exe”

在tbdriver.py中修改:

  • 从“ socks_port = cm.STEM_SOCKS_PORT”到“ socks_port = cm.TBB_SOCKS_PORT”

在utils.py中修改:

  • 在“ launch_tbb_tor_with_stem”中删除全部收益

可在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浏览器不需要刷新,只需要在那里。