Selenium webdriver 使用Selenium实现浏览器自动化:指纹、可识别性和可追溯性?

Selenium webdriver 使用Selenium实现浏览器自动化:指纹、可识别性和可追溯性?,selenium-webdriver,web-scraping,browser-automation,Selenium Webdriver,Web Scraping,Browser Automation,我想使用selenium/webdriver来模拟浏览器,并用它来抓取一些网站内容。即使它不是最快的方法,对我来说它也有很多优点,比如执行脚本等等 对于许多网站来说,禁止通过自动方式访问它们,例如谷歌(google)或必应(bing)等搜索引擎 对于一个工具,我需要从google中获取几个关键字的估计结果。这将如下所示:模拟访问google.com的浏览器,键入关键字并刮取结果,然后稍作停顿后键入下一个关键字,刮取结果,依此类推 我的问题是:网站是否可以识别我使用selenium模拟浏览器而不是

我想使用selenium/webdriver来模拟浏览器,并用它来抓取一些网站内容。即使它不是最快的方法,对我来说它也有很多优点,比如执行脚本等等

对于许多网站来说,禁止通过自动方式访问它们,例如谷歌(google)或必应(bing)等搜索引擎

对于一个工具,我需要从google中获取几个关键字的估计结果。这将如下所示:模拟访问google.com的浏览器,键入关键字并刮取结果,然后稍作停顿后键入下一个关键字,刮取结果,依此类推


我的问题是:网站是否可以识别我使用selenium模拟浏览器而不是手动使用浏览器?尤其是谷歌的案子让我有些怀疑。我知道selenium部分是由谷歌开发的,或者至少是由一些为谷歌工作的人开发的。因此,是否给selenium留下了一些指纹,或者是否有可能决定我是自己使用浏览器还是由selenium模拟,即使是对于google?

不,没有人能真正看到您使用的是selenium,而不是自己用WebDriver手动操作浏览器。我不确定旧的Selenium RC,但应该是相同的方式。下面是它的工作原理:

  • Selenium使用干净的配置文件(或您选择的配置文件)打开浏览器
  • Selenium与浏览器相连,因此它可以控制浏览器。但是浏览器仍然完成了大部分工作。基本上,Selenium会取代用户对浏览器的输入,但不会更多
  • 您可以通过读取浏览器发送的HTTP头的内容轻松验证这一点

    如果您确实需要服务器识别Selenium,您可以和


    尽管如此,有一件事你必须意识到。虽然无法直接检测硒,但您访问的网站可能会发现一些间接线索。这些通常包括在几乎没有时间的情况下扫描太多的请求-这可能是您的一个问题。确保您的Selenium表现得像一个用户


    编辑2016/04:


    很明显,一家公司有可能做到这一点。我的猜测——这只是猜测——是他们可以运行Selenium安装到浏览器中的一些JS进行操作。

    迹象表明是的,站点可以重新定义您正在使用Selenium。
    反例:www.stubhub.com检测并阻止使用Selenium启动的我的浏览器实例,而手动“正常”浏览(不使用Selenium web驱动程序启动的浏览器)则解决了此问题

    有关更多详细信息,请参阅此stackoverflow问题

    Thx您的回答非常清楚。在将其标记为已接受之前,我将等待一段时间,也许还有其他一些意见。别误会,我喜欢你的答案,但也许还有其他一些无形的方法来识别selenium,特别是对于google,因为我可以想象,识别自动化浏览器符合他们的利益。多谢!!嘿,Slanec,今天我试用了firefox的webdriver,我注意到右下角的“webdriver”文本,我还看到安装了一个名为“firefox webdriver 2.33.0”的插件。这让我有些怀疑。你真的确定网页看不到我在firefox中使用的插件吗?我不明白状态栏上这个“webdriver”标志的意思?@zwieback86不,没有人能检测到你的Firefox插件(除非你的插件故意让这成为可能)。请参阅和/或。@Slanec,这个答案不再是100%正确的。在大多数情况下,这是真的,但不是全部。看起来有一家公司提供了阻止基于硒的机器人的服务。