首页 > 解决方案 > 有没有办法将 selenium 与 chrome 而不是 chromedriver 一起使用?

问题描述

我正在尝试自动化一个可以检测 chromedriver 的网站。我使用了一个用户代理,我已经进入并更改了 chromedriver 的 cdc_ 部分,以及其他一些东西。无论我做什么,它都会检测到 chromedriver 并且不会做任何事情。

但是,我已经能够使用 Subprocesses 并打开我的普通浏览器和 sendkeys 来访问网站,并做一些我需要的事情,所以我知道它可以在我的普通浏览器中工作。

有什么方法可以启动常规 chrome 并将 selenium 附加到它以自动执行任务?

标签: pythonpython-3.xseleniumbrowser

解决方案


Chromedriver 驱动 chrome。这不是它自己的浏览器。

手动打开 chrome 并转到chrome://version/

然后打开您的网络驱动程序并转到相同的链接。您会看到 selenium 在新的/临时配置文件上启动 chrome 并启用更多参数。

只是这一行没有driver = webdriver.Chrome()我的选项(在python中)启动带有一长串命令行参数的chrome: chrome selenium 命令行参数

由于硒的工作方式,您很可能会被检测到。

这是一篇很好的文章,详细介绍了问题和可能要尝试的事情:网站可以检测到您何时使用 selenium 和 chromedriver?

站点可以检测到 selenium 设置的一些变量。

@Erti-Chris Eelmaa 说得非常好:

selenium 检测的工作方式是它们测试使用 selenium 运行时出现的预定义 javascript 变量。bot 检测脚本通常在任何变量(在窗口对象上)中查找包含单词“selenium”/“webdriver”的任何内容,并且还记录名为 $cdc_ 和 $wdc_ 的变量。当然,所有这些都取决于您使用的浏览器。所有不同的浏览器都暴露了不同的东西。

您可以禁用 javascript,并通过实验标签禁用“--enable-automation”,但这可能会影响 selenium 的功能,并且您的脚本可能无法正常工作。

这可能不是您想听到的,但是当您处理这个(使用 selenium)时,请记住该站点旨在停止自动化,因此您正面临着一场艰苦的战斗。


推荐阅读