Selenium爬虫运行时被重定向到诈骗比特币网站是什么原因?
异常诱发原因
- UA特征异常:当前配置的User-Agent是2015年已停止维护的Windows Phone移动端旧版Edge标识,属于几乎没有真实用户使用的极端冷门UA,直接触发网站反爬规则;且代码中UA参数值额外套了一层双引号,实际传递给浏览器的UA首尾带冗余引号,特征更异常。
- 启动参数存在高风险/无效特征:
--ignore-certificate-errors、--ignore-ssl-errors两个参数会关闭浏览器SSL证书校验,正常用户浏览器默认不会开启该配置,极易被反爬标记为恶意流量;--blink-settings=imagesEnabled=false是Chromium内核浏览器专属参数,火狐内核无法识别,属于无效参数,反而会增加指纹可疑度;no-sandbox参数缺少前缀横杠,写法错误不生效。 - 自动化指纹完全暴露:原生Selenium启动的火狐浏览器默认携带
webdriver标识,没有做任何指纹伪装,网站防护系统可以直接识别出这是自动化爬虫流量,不会返回正常页面,直接跳转垃圾广告页拦截爬虫。 - 小概率是本地网络劫持:如果手动用普通浏览器访问目标页面也出现相同跳转,就是本地DNS/运营商链路被恶意劫持,和代码无关。
排查解决方向
- 第一步先做基础校验:关闭Selenium,手动打开本地普通火狐/Chrome浏览器访问ATP男单排名页,确认是否正常加载。如果手动访问也跳诈骗站,先排查本地DNS配置、浏览器恶意插件、网络链路劫持问题,不用先改代码。
- 修正启动参数:
- 替换UA为当前主流桌面端火狐的正常标识,去掉UA值外层多余的引号,不要使用早已淘汰的冷门设备UA。
- 删除
--ignore-certificate-errors、--ignore-ssl-errors两个高风险参数,删除火狐不识别的--blink-settings=imagesEnabled=false参数,修正沙箱参数写法为--no-sandbox,非root环境下可以直接删掉该参数。 - 火狐下禁用图片加载不要用Chromium系参数,通过首选项配置
permissions.default.image = 2实现即可。
- 隐藏自动化特征:启动时通过首选项把
dom.webdriver.enabled设为False,useAutomationExtension设为False,关闭默认的自动化标识;如果还是被拦截,可以替换为修补过指纹的undetected-geckodriver启动,绕过常规自动化检测。 - 调整访问逻辑:页面发起请求后不要立刻抓取源码,加3-5秒的随机等待,模拟真实用户的页面加载停留时长,避免过快的请求触发反爬。
修正后的核心驱动代码参考:
def get_driver(self): options = webdriver.FirefoxOptions() # 配置正常桌面端UA,无多余引号 options.add_argument('--user-agent=Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:128.0) Gecko/20100101 Firefox/128.0') options.add_argument("--log-level=3") # 火狐禁用图片加载的正确配置 options.set_preference("permissions.default.image", 2) # 关闭自动化标识 options.set_preference("dom.webdriver.enabled", False) options.set_preference("useAutomationExtension", False) return webdriver.Firefox(options=options, executable_path=<geckodriver_path>)
内容的提问来源于stack exchange,提问作者Jossy
相关产品推荐
相关产品推荐

