使用Selenium Wire+Tor浏览器遇WinError10061及请求头捕获设置问题
问题解答
一、Selenium Wire连接Tor时出现WinError 10061错误
这个错误是本地连接被拒绝,常见原因和解决方法:
- Tor浏览器未启动或端口不匹配:确认Tor浏览器已打开,Tor Browser Bundle默认SOCKS5端口是9150,单独的Tor服务可能用9050,检查Tor设置里的端口号后对应修改代码中的代理配置。
- 防火墙/杀毒软件拦截:本地防火墙或杀毒软件可能阻止了Selenium Wire访问127.0.0.1:9150,可暂时关闭相关软件测试,或添加允许规则。
- 代理配置错误:确保Selenium Wire的代理设置正确指向Tor的SOCKS5代理,示例配置参考:
from seleniumwire import webdriver options = { 'proxy': { 'http': 'socks5://127.0.0.1:9150', 'https': 'socks5://127.0.0.1:9150', 'no_proxy': 'localhost,127.0.0.1' } } driver = webdriver.Firefox(seleniumwire_options=options)
二、请求拦截器的相关疑问
1. request参数是什么?
request是Selenium Wire在发起每个HTTP请求前自动传入的Request实例,包含当前请求的所有核心属性:比如headers(请求头字典)、url(请求地址)、method(请求方法)等。你可以直接修改这个对象的属性,以此改变最终发送的请求内容。
2. 为什么赋值interceptor而不是interceptor()?
Selenium Wire需要的是一个可调用的函数对象,这样它才能在每次请求触发时自动调用该函数,并把对应的request对象传进去。如果写interceptor(),相当于立即执行这个函数(此时还没有请求发生,也没有request参数可以传入),函数的返回值(这里是None)会被赋值给driver.request_interceptor,拦截逻辑根本不会被触发。
内容的提问来源于stack exchange,提问作者Olgierd Wiśniewski
相关产品推荐
相关产品推荐

