You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何用Python+Selenium启动Tor浏览器?报错求助

解决方案:修复Geckodriver兼容问题

你遇到的核心问题是老旧的Geckodriver版本与Tor浏览器内置的Firefox内核不兼容——v0.17.0是2017年的版本,而现在的Tor浏览器搭载的Firefox ESR版本已经更新了很多代,版本不匹配就会导致启动失败。下面是具体的修复步骤:

1. 更新Geckodriver到兼容版本

  • 先打开Tor浏览器,点击右上角菜单 → 帮助 → 关于Tor浏览器,查看内置的Firefox版本号(比如Tor 12.x对应Firefox 102 ESR)
  • 根据这个版本下载对应的Geckodriver:尽量选择最新的稳定版,它会兼容绝大多数新的Tor浏览器版本(比如Firefox 102+需要Geckodriver v0.31.0及以上)
  • 将下载好的geckodriver.exe放到代码指定的路径,或者添加到系统环境变量中

2. 优化Selenium代码配置

旧的FirefoxProfile配置方式已经被逐步淘汰,改用更现代的Options类来配置,同时修正路径转义问题,优化后的代码如下:

from selenium import webdriver
from selenium.webdriver.firefox.options import Options
from selenium.webdriver.firefox.firefox_binary import FirefoxBinary

# Tor浏览器的Firefox二进制文件路径
tor_binary_path = r'C:\Tor Browser\Browser\firefox.exe'
# Tor浏览器的配置文件路径
tor_profile_path = r'C:\Tor Browser\Browser\TorBrowser\Data\Browser\profile.default'

# 配置Firefox选项
options = Options()
options.profile = tor_profile_path

# 指定Tor的Firefox二进制文件
binary = FirefoxBinary(tor_binary_path)

# 初始化驱动(使用原始字符串避免路径转义问题)
driver = webdriver.Firefox(
    firefox_binary=binary,
    options=options,
    executable_path=r"C:\Python\scrapy-master\Projects\kgooglecom\WithScreenshot\geckodriver.exe"
)

# 测试访问
driver.get("https://www.google.com")
driver.save_screenshot("screenshot1.png")
driver.quit()

代码调整说明:

  • 使用Options类替代旧的FirefoxProfile,这是Selenium 3.x及以上版本推荐的配置方式
  • 路径字符串前加r启用原始字符串,避免Windows路径中的反斜杠被解析为转义字符
  • 移除了不必要的DesiredCapabilities配置,当前Selenium版本会自动处理Marionette相关设置

3. 额外排查要点

  • 确认Tor浏览器的安装路径和配置文件路径完全正确,部分Tor版本的profile.default位置可能略有差异
  • 运行代码前不要手动打开Tor浏览器,防止端口冲突导致启动失败
  • 如果仍然报错,可以尝试以管理员身份运行Python脚本,或者检查Geckodriver文件的权限

内容的提问来源于stack exchange,提问作者Amol Kumbhar

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.28 09:07:59