selenium 脚本远程加载网站失败
当你编写了一个使用 selenium 和 python 自动登录网站的脚本时,在你的本地电脑上运行时一切都很好。然而,当你将脚本打包成一个 exe 文件并将其部署到远程电脑上时,它却无法加载网站,并且永远卡在 "正在检查浏览器以访问 xxx" 的页面中。
原因:
远程电脑上的网站很可能配置了 web 应用程序防火墙 (waf),可以检测到 selenium 脚本是爬虫。当 waf 检测到爬虫时,它会要求你验证你的身份,这通常需要验证码或其他验证步骤。
解决方案:
为了解决这个问题,你可以尝试以下方法:
- 使用代理: 设置 selenium 脚本使用代理,以便请求看起来像来自不同的 ip 地址。
- 更改用户代理: 修改 selenium 脚本中的用户代理,使其看起来像来自不同的浏览器。
- 禁用硒检测: 使用 selenium 库中提供的技术或第三方库来禁用网站对 selenium 的检测。
示例代码:
要禁用 selenium 检测,你可以在 selenium 选项中执行以下操作:
op.add_argument('--disable-blink-features=AutomationControlled')注意:
绕过 waf 是一个持续的猫捉老鼠游戏,因为它会不断更新其检测方法。因此,你需要不断更新你的脚本以跟上变化。










