如何在Windows系统通过Python Selenium启动TorBrowser?
解决Windows上Selenium启动Tor Browser提示“Tor failed to start”的问题
我之前也踩过这个坑,结合你的环境和代码来看,问题核心是直接调用Firefox内核没有触发Tor Browser自带的Tor服务启动流程,再加上geckodriver版本和Tor内核不匹配,才导致了这个报错。下面给你一步步解决的方案:
先明确问题根源
你之前的代码直接调用了Tor里的firefox.exe,但Tor Browser本身是通过Start Tor Browser.exe启动的——这个脚本会先启动本地Tor服务,再加载Firefox。跳过这个脚本直接启动Firefox的话,Tor服务根本没起来,自然会弹出“Tor failed to start”的提示。另外你用的geckodriver v0.26.0对应Firefox 70-72,而Tor Browser 9.5基于Firefox 78 ESR,版本不匹配也会埋下兼容性隐患。
解决方案步骤
1. 匹配geckodriver版本
先把你的geckodriver换成v0.27.0,这个版本刚好适配Firefox 75-78,完美匹配Tor Browser 9.5的内核版本。下载后替换掉你当前路径里的geckodriver即可。
2. 正确的Selenium配置代码
不要再用旧的FirefoxBinary和FirefoxProfile写法,改用Options来配置,同时指定关键参数让Tor Browser自己启动Tor服务:
from selenium import webdriver from selenium.webdriver.firefox.options import Options # 替换成你自己的Tor Browser路径 TOR_BROWSER_PATH = r"C:\Users\usr\Desktop\Tor Browser\Browser\firefox.exe" TOR_PROFILE_PATH = r"C:\Users\usr\Desktop\Tor Browser\Browser\TorBrowser\Data\Browser\profile.default" # 配置Firefox选项 options = Options() options.profile = TOR_PROFILE_PATH options.binary_location = TOR_BROWSER_PATH # 关键配置:让Tor加载自身的代理和服务 options.set_preference("network.proxy.type", 1) options.set_preference("network.proxy.socks", "127.0.0.1") options.set_preference("network.proxy.socks_port", 9150) options.set_preference("network.proxy.socks_remote_dns", True) # 禁用自动更新避免干扰 options.set_preference("app.update.enabled", False) # 初始化驱动(Selenium 3.x写法,如果你用Selenium 4+,需要改用Service类) driver = webdriver.Firefox( options=options, executable_path=r'C:\TestFiles\geckodriver.exe' ) # 验证是否成功连接Tor driver.get("https://check.torproject.org/")
3. 额外注意事项
- 启动脚本前,确保Tor Browser没有在后台运行,否则会因为profile被占用报错。
- Windows 7系统下,尽量以管理员身份运行你的Python脚本,避免权限不足导致Tor服务无法启动。
- 不要手动修改Tor的默认
profile.default文件夹,保持原始配置才能保证启动流程正常。
内容的提问来源于stack exchange,提问作者AquaUpcald
相关产品推荐
相关产品推荐

