phantomjs/selenium 和 jQuery 自动填充表单的方式有区别吗?

Posted

技术标签:

【中文标题】phantomjs/selenium 和 jQuery 自动填充表单的方式有区别吗?【英文标题】:Is there a difference in how phantomjs/selenium and jQuery auto fill forms? 【发布时间】:2014-07-16 23:24:37 【问题描述】:

我听说过表单上的 JS 脚本可以监听点击输入并监控输入字段值的变化。这些脚本用于捕获/阻止机器人自动填充。

使用 jQuery (NojeJS-WebKit (for automating like selenium)) 你可以通过它的属性设置输入的值并且 通过在按钮上调用click 提交表单。这是所有的了 自动化。

在 phantomjs/selenium 中,您可以启动一个无头网络驱动程序并获得 输入、设置值并提交表单。同样,这一切都是自动化的。

问题:这些实现的工作方式有哪些根本区别?

例如:Selenium 被宣传为在浏览器中表现得像人一样。在无头模式下,您实际上可以看到 selenium 将值注入/写入表单字段,而 jQuery 则没有。

因此,我的理解/相信 Selenium 表单自动化可以绕过 JS 机器人监控,而 jQuery 中的相同类型的自动化(尽管速度更快)将被检测到。

请分享您对该主题的了解。由于速度优势,我对使用 jQuery 严格模仿 selenium 的“人类”行为特别感兴趣。

【问题讨论】:

我认为这个问题需要澄清一下。 “NojeJS-WebKit”是指github.com/shama/nodewebkit吗? “Selenium”是指 Selenium RC (docs.seleniumhq.org/projects/remote-control) 还是 Selenium WebDriver (docs.seleniumhq.org/projects/webdriver)。当然,NodeJS-Webkit 和 Selenium 在各个方面并不完全相同。它们在某些方面相似,而在其他方面不同。如果没有更多关于您正在比较的两种产品以及您试图规避哪种系统的详细信息,就很难知道您对哪些方面感兴趣。 【参考方案1】:

如果您只是比较auto fill forms 的情况, javascript 和 Selenium 方式没有太大区别。

JavaScript(jQuery是一个JavaScript库)方式将JavaScript代码注入浏览器,然后改变网页内容。 Selenium 方式使用WebDriver protocol(http://www.w3.org/TR/webdriver/) 来控制网络浏览器的行为。

它们都可以自动更改网页。

但它在 Selenium 中更强大。例如,您可以自动更改浏览器的设置(用户代理/浏览器大小/浏览器插件等...)。你也可以用多种语言(Java、Ruby、Python、JavaScript...)进行编程。

【讨论】:

我想我已经回答了fundamental differences(JavaScript vs WebDriver)。在你回答来自@jtmanteo 的所有问题之前,我认为你的问题不是clearly

以上是关于phantomjs/selenium 和 jQuery 自动填充表单的方式有区别吗?的主要内容,如果未能解决你的问题,请参考以下文章

防止在 Python 驱动的 PhantomJS/Selenium 中下载 CSS/其他资源

[Python爬虫] 在Windows下安装PIP+Phantomjs+Selenium

爬虫大杀器——phantomJS+selenium

Java爬虫进阶-phantomJS+selenium2抓取网站图片和小说

PhantomJS + Selenium webdriver 总结-元素定位

Python爬虫连载14-动态HTMLPhantomJS和Chromedriver