2013-07-15 50 views
4

我想用selenium/webdriver来模拟一个浏览器,并用它刮掉一些网站内容。即使它不是最快的方法,对我来说它有许多优点,如执行脚本等。带Selenium的浏览器自动化:指纹,可识别性和可追溯性?

对于很多网站来说,禁止通过自动方法访问它们,例如google或bing等搜索引擎。

对于一个工具,我需要从谷歌的估计resultstat几个关键字。这看起来像下面这样:模拟访问google.com的浏览器并键入关键字并删除结果,然后在稍后暂停输入下一个关键字,然后删除结果等等...

我的问题是:网站是否有可能认识到我使用硒模拟浏览器而不是手动使用浏览器?特别是谷歌案件给了我一些疑虑。我知道硒部分是由谷歌开发的,或者至少有一些为谷歌工作的人开发的。那么,硒离开一些指纹还是不可能决定我自己使用浏览器还是硒模拟,即使是谷歌?

回答

3

不,没有人能真正看到您使用Selenium,而不是使用WebDriver自己手动操作浏览器。我不确定旧的硒钢筋混凝土,但它应该是一样的。下面是它如何工作的:

  1. 硒开辟了一个干净的轮廓的浏览器(或用轮廓您选择)
  2. 硒迷上了浏览器,因此它可以引导它,控制它。但浏览器仍然做大部分工作。基本上,Selenium将用户输入替换为浏览器,但不是更多。

您可以通过阅读浏览器发送的HTTP标头的内容轻松验证此内容。

如果您确实需要Selenium才能被您的服务器识别,您可以使用use Browsermob-proxyadd a custom header to your requests


所有这一切说,有一件事你必须意识到。尽管无法直接检测Selenium,但您访问的网站可能会收到一些间接线索。这些通常包括几乎立即扫描太多请求 - 这可能是一个问题。确保你的Selenium像用户一样行事。


编辑2016/04:

Apparanetly它尽可能https://stackoverflow.com/a/33403473/2930045美国一家公司能做到这一点。我的猜测 - 这只不过是个猜测 - 是他们可以运行一些Selenium安装到浏览器中运行的JS。

+1

THX你的答案是真的清楚看到这个计算器的问题。在将其标记为接受之前,我会等待一段时间,也许还有其他一些意见。不要让我错,我喜欢你的答案,但也许有一些其他隐形的方法来识别硒,尤其是谷歌,因为我可以想象它有兴趣识别自动浏览器。多谢!! – zwieback86

+0

Hey Slanec,今天我试用了firefox的webdriver,并且我注意到右下角的“webdriver”文本,并且我还看到安装了一个名为“Firefox Webdriver 2.33.0”的插件。这让我有点怀疑。你真的确定一个网页无法看到我在Firefox中使用了什么插件吗?我没有在状态栏中看到这个“webdriver”标志? – zwieback86

+0

@ zwieback86不,没有人可以检测到你的Firefox插件(除非你的插件使这个故意可能)。请参阅http://stackoverflow.com/questions/5067375/detecting-my-own-firefox-extension-from-a-webpage和/或http://webdevwonders.com/detecting-firefox-add-ons/。 –

1

迹象表明,是的,网站能够正规化,你正在使用硒。
计数器示例:www.stubhub.com检测并阻止使用Selenium启动的浏览器实例,而手动完成“正常”浏览(不使用由Selenium Web驱动程序启动的浏览器)可解决问题。

了解更多详细信息 Can a website detect when you are using selenium with chromedriver?