Chrome搭配Tor代理配置问题:匿名WebDriver失效及uBlock加载异常
解决Chrome WebDriver无法通过Tor代理及uBlock扩展加载失败的问题
太懂这种突然掉链子的糟心了——Chrome重置后,之前稳得一批的匿名WebDriver突然不走Tor,连uBlock也加载失败,大概率是因为WebDriver默认会启动干净的临时Chrome配置文件,重置后的Chrome不会自动继承旧的代理设置,扩展加载也得靠显式配置才行。下面是具体的修复方案:
1. 核心问题拆解
- Tor启动后,Chrome不会自动识别代理,必须在WebDriver里明确指定SOCKS5代理地址
- WebDriver默认会隔离Chrome的默认扩展列表,uBlock得手动指定路径加载
- 旧版Tor(你用的0.2.9.9是2017年的老版本)可能和新版Chrome存在兼容性问题
2. 修改后的完整代码示例
import os import time from selenium import webdriver from selenium.webdriver.chrome.options import Options import socket def check_tor_running(): # 检查Tor的9050端口是否已监听,确保Tor真的启动完成 sock = socket.socket(socket.AF_INET, socket.SOCK_STREAM) result = sock.connect_ex(('127.0.0.1', 9050)) sock.close() return result == 0 def anon_drive(): tor_path = r"C:\Users\xxx\Downloads\tor-win32-0.2.9.9\Tor\tor.exe" # 先检查Tor是否已经在运行,避免重复启动 if not check_tor_running(): os.startfile(tor_path) # 循环等待Tor启动,最多等30秒(比固定10秒更可靠) wait_timer = 0 while not check_tor_running() and wait_timer < 30: time.sleep(2) wait_timer += 2 if wait_timer >= 30: raise Exception("Tor启动超时!请检查Tor路径是否正确,或防火墙是否拦截") # 配置Chrome核心选项 chrome_options = Options() # 启用隐身模式(增强匿名性,可选) chrome_options.add_argument("--incognito") # 禁用WebDriver自动化检测,避免Chrome限制功能 chrome_options.add_argument("--disable-blink-features=AutomationControlled") chrome_options.add_experimental_option("excludeSwitches", ["enable-automation"]) chrome_options.add_experimental_option('useAutomationExtension', False) # 强制指定Tor的SOCKS5代理 chrome_options.add_argument('--proxy-server=socks5://127.0.0.1:9050') # 本地请求不走代理(避免Tor处理localhost流量,可选) chrome_options.add_argument('--proxy-bypass-list=localhost;127.0.0.1') # 加载uBlock扩展(替换成你自己的扩展路径) # 路径获取方法:Chrome开启开发者模式后,在chrome://extensions/里复制uBlock的crx路径或解压文件夹路径 chrome_options.add_extension(r"C:\Users\xxx\AppData\Local\Google\Chrome\User Data\Default\Extensions\cjpalhdlnbpafiamejdnhcphjbkeiagm\1.52.0_0.crx") # 如果是解压后的扩展文件夹,用这个: # chrome_options.add_argument(r'--load-extension=C:\path\to\your\ublock-folder') # 初始化WebDriver driver = webdriver.Chrome(options=chrome_options) return driver # 测试验证 if __name__ == "__main__": driver = anon_drive() driver.get("https://check.torproject.org/") print("是否成功通过Tor访问:", "Congratulations" in driver.page_source)
3. 额外必做检查
- 升级Tor版本:你用的0.2.9.9是古董级版本,不仅兼容性差,还有安全漏洞,赶紧更到最新稳定版
- Chrome与WebDriver版本匹配:必须保证ChromeDriver和你的Chrome浏览器版本完全一致,版本不匹配会触发各种诡异问题
- 防火墙/杀毒软件:检查是否有安全软件拦截了Tor的网络连接,或者阻止了Chrome加载第三方扩展
内容的提问来源于stack exchange,提问作者Sid
相关产品推荐
相关产品推荐

