Python:Selenium配置Tor代理无法建立连接
解决Firefox Selenium连接Tor代理时的“Proxy server is refusing connections”错误
嘿,我来帮你搞定这个Tor代理连接失败的问题!先从几个常见的排查点和修复方案说起:
第一步:先确认Tor服务是否在运行
9050是Tor默认的SOCKS端口,但如果Tor本身没启动,肯定会出现代理拒绝连接的情况。你可以这么检查:
- Windows:打开命令提示符,输入
netstat -ano | findstr :9050,看看有没有进程在监听这个端口 - Linux/macOS:用终端执行
lsof -i :9050,确认Tor服务处于运行状态
如果Tor没启动,先打开Tor Browser或者启动Tor系统服务再试。
第二步:修正Firefox代理配置(关键!)
你的代码里漏了一个Tor必需的配置:让Firefox使用SOCKS代理的远程DNS解析。加上这行就能解决大部分连接问题:
profile.set_preference("network.proxy.socks_remote_dns", True)
第三步:适配新版本Selenium的API
如果你的Selenium版本比较新,FirefoxProfile和FirefoxBinary的用法已经被弃用了,改用Options类配置更稳妥。重构后的完整代码如下:
from selenium import webdriver from selenium.webdriver.firefox.options import Options # 配置Firefox选项 firefox_options = Options() firefox_options.set_preference("network.proxy.type", 1) firefox_options.set_preference("network.proxy.socks_version", 5) firefox_options.set_preference("network.proxy.socks", "127.0.0.1") firefox_options.set_preference("network.proxy.socks_port", 9050) firefox_options.set_preference("network.proxy.socks_remote_dns", True) # 启用远程DNS解析 firefox_options.set_preference("network.http.use-cache", False) firefox_options.set_preference("general.useragent.override", "Firefox") # 初始化驱动 driver = webdriver.Firefox(options=firefox_options) def interactWithSite(driver): driver.get("https://check.torproject.org/") interactWithSite(driver)
第四步:检查Tor的监听配置
如果还是不行,打开Tor的配置文件(torrc),确认下面这行没有被注释掉:
SocksPort 127.0.0.1:9050
修改后记得重启Tor服务。
终极方案:直接用Tor Browser的预设配置
如果上面的方法都没效果,干脆直接加载Tor Browser的配置文件——毕竟Tor Browser已经预设了所有正确的Tor代理参数。找到Tor Browser的profile目录(比如Windows上的%APPDATA%\TorBrowser\Browser\TorBrowser\Profiles\*.default),然后在代码里指定:
firefox_options.profile = r"C:\你的TorBrowserProfile路径"
内容的提问来源于stack exchange,提问作者Peeps
相关产品推荐
相关产品推荐

