zwi*_*k86 5 browser-automation web-scraping selenium-webdriver
我想使用 selenium/webdriver 来模拟浏览器并用它抓取一些网站内容。即使它不是最快的方法,对我来说它也有很多优点,例如执行脚本等。
对于许多网站,禁止通过自动方法访问它们,例如 google 或 bing 等搜索引擎。
对于一种工具,我需要从 google 抓取几个关键字的估计结果统计数据。这将如下所示:模拟浏览器访问 google.com 并输入关键字并抓取结果,然后稍作停顿后输入下一个关键字,抓取结果等等......
我的问题是:网站是否有可能识别出我正在使用 selenium 来模拟浏览器而不是手动使用浏览器?尤其是google案例,让我有些疑惑。我知道 selenium 部分是由谷歌开发的,或者至少是由一些为谷歌工作的人开发的。那么是否会为 selenium 留下一些指纹,或者是否无法决定我是自己使用浏览器还是 selenium 模拟的浏览器,即使对于谷歌也是如此?
不,没有人能真正看到您正在使用 Selenium,而不是自己使用 WebDriver 手动操作浏览器。我不确定旧的 Selenium RC,但应该是同样的方式。它的工作原理如下:
您可以通过读取浏览器发送的 HTTP 标头内容轻松验证这一点。
如果您确实需要 Selenium 被服务器识别,您可以使用 Browsermob-proxy并向您的请求添加自定义标头。
综上所述,有一件事您必须注意。虽然无法直接检测 Selenium,但您正在访问的网站可能会发现一些间接线索。这些通常包括扫描几乎立即发出的太多请求 - 这对您来说可能是一个问题。确保您的 Selenium 表现得像一个用户。
2016/04 编辑:
显然这是可能的,因为/sf/answers/2338243141/指出公司可以做到这一点。我的猜测(这只是猜测)是他们可以运行 Selenium 安装到浏览器中的一些 JS 来进行操作。
| 归档时间: |
|
| 查看次数: |
8992 次 |
| 最近记录: |