问题标签 [headless-browser]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
14 回答
69373 浏览

automation - 无头互联网浏览器?

我想做以下事情。登录网站,单击几个特定链接,然后单击下载链接。我想将此作为 Windows 上的计划任务或 Linux 上的 cron 作业运行。我对我使用的语言并不挑剔,但如果可能的话,我希望在不将浏览器窗口放在屏幕上的情况下运行它。

0 投票
6 回答
22008 浏览

firefox - Linux 上的无头、可编写脚本的 Firefox/Webkit?

我希望自动化一些网络交互,即从安全网站定期下载文件。这基本上涉及输入我的用户名/密码并导航到适当的 URL。

我在 Python 中尝试了简单的脚本,然后是更复杂的脚本,只是发现这个特定的网站正在使用一些令人讨厌的 javascript 和基于 flash 的登录机制,使我的方法毫无用处。

然后我尝试了 HTMLUnit,但这似乎也不想工作。我怀疑使用 Flash 是问题所在。

我真的不想再考虑它了,所以我倾向于编写一个实际浏览器的脚本来登录并获取我需要的文件。

要求是:

  • 在 linux 服务器上运行(即没有运行 X)。如果我真的需要 XI 可以做到这一点,但我不会高兴。
  • 要可靠。我想开始这件事,再也不去想它。
  • 可编写脚本。没什么太复杂的,但我应该能够告诉浏览器要采取的各种步骤和要访问的页面。

对于无头、无 X 可编写脚本的浏览器,是否有任何好的工具包?你有没有尝试过这样的事情,如果是这样,你有什么智慧的话吗?

0 投票
1 回答
7445 浏览

java - 用于 Java(无头浏览器)的 HtmlUnit API 中的问题?

我正在使用 HtmlUnit 无头浏览器浏览此网页(您可以查看该网页以更好地了解问题)。

我已将选择的值设置为“1”

通过以下命令

然后点击下面的按钮

通过以下命令

但即使在单击按钮并通过 Thread.sleep() 方法等待 60 秒后,我也得到了相同的 HtmlPage。

但是当我通过真正的浏览器做同样的事情时,我会得到包含验证码的页面。

我想我在 htmlunit 中遗漏了一些东西。

Q1。为什么我没有通过 htmlunit 的浏览器获得相同的页面(包含 CAPTCHA)?

0 投票
2 回答
387 浏览

java - 如何通过 Java 中的 HtmlUnit 在超链接上生成多个印象?

我正在使用HtmlUnit提供的无头浏览器

我在 webClient 中加载了一个网页。现在我想在超链接(在加载的网页上)上产生多次印象,就像我们将鼠标光标多次悬停在真实网络浏览器中网页中的链接上的链接上一样。

我怎样才能通过 HtmlUnit 做到这一点?

0 投票
1 回答
1423 浏览

java - 在 CentOS 5.4 上无头 HTML 渲染到图像

我有一个项目要求渲染 HTML 并将渲染的图像捕获为无头 CentOS 5.4 服务器上的文件。我的具体要求是:

1) 输入将是要呈现的页面的 URL(或 file:// URL 到本地 HTML 文件),输出将是包含页面呈现图像的图像文件
2) 渲染器必须支持 CSS 直到CSS level-1
3) 页面中的静态图像必须在渲染图像中正确显示,包括 .GIF 或 .PNG 文件中的任何透明颜色
4) 必须能够在无头 CentOS 5.4 服务器上运行。
5) 解决方案不得依赖于任何非免费用于商业用途的产品或组件

除了获取屏幕截图并将其保存到图像之外,我不需要对页面做任何事情。困难的部分似乎是在无头环境中执行此操作。我见过的一些解决方案需要显示才能工作。

有什么建议么?

在此先感谢,吉姆

解决方案:我最终使用 Standard Widget Toolkit 库 (www.eclipse.org/swt) 来实现其嵌入式浏览器功能。这使我能够以编程方式打开一个带有浏览器控件的窗口,呈现页面,然后将窗口的内容捕获到图像文件(通常是 PNG)中。这种方法唯一无法避免的缺点是“闪烁”,当必须使窗口暂时可见才能进行屏幕捕获时。我可以忍受它。剩下的只是初始化获取系统资源的 SWT 对象的代码、一个检查页面加载是否成功完成的侦听器,以及一些用于清理挂起连接的代码(当页面加载由于某种原因从未完成时)。

我有一个队友在 CentOS Linux 上玩 xvfb(X 虚拟帧缓冲区)。最初的测试似乎有效,所以看起来下面海报(谁说尝试 xvfb)的建议可能是解决我的问题的无头服务器部分的可行解决方案。

0 投票
3 回答
1630 浏览

hosting - 你能在 Heroku 上部署 Watir 来生成 HTML 快照吗?如果是这样,怎么做?

我想使用托管在Heroku上的Watir生成 HTML 快照。

Google's Full Specification for Making AJAX Applications Crawlable建议使用HTMLUnit ...请参阅如何创建 HTML 快照?第 3 点。

HtmlUnit 是一个纯 Java 的无头浏览器模拟器;不幸的是,jRuby 不是 Heroku 的一个选项。所以 HtmlUnit 被排除在外(据我所知)。

如果您有兴趣,我还有另一个关于 HtmlUnit 作为托管在 Google App Engine 上的服务的问题... 使 AJAX 应用程序可抓取?如何在 Google App Engine 上构建一个简单的 Web 服务来生成 HTML 快照?...仍在等待经过验证的示例/答案。

0 投票
2 回答
1759 浏览

asp.net - ASP.NET 的无头浏览器

我正在开发完整的 ajax 网络应用程序。所以我需要开发谷歌可抓取的应用程序,我还必须为 googlebot 创建快照。

你知道无头浏览器适用于 ASP.NET 的 javascript 和 ajax 吗?

我找到了 XBrowser,但现在它不支持 JavaScript。

对不起我的英语不好 :)。

0 投票
6 回答
13474 浏览

screen-scraping - 替代 HtmlUnit

我一直在研究迄今为止可用的无头浏览器,发现 HtmlUnit 被广泛使用。与 HtmlUnit 相比,我们有任何替代 HtmlUnit 的可能优势吗?

谢谢奈恩

0 投票
4 回答
11656 浏览

firefox - 真正的无头浏览器

我负责测试一个大量使用 AJAX 的企业 Web 应用程序。我需要构建一个允许在没有人工干预的情况下连续运行测试的系统。目前我最感兴趣的是负载测试,但我希望用于生成负载的相同脚本用于功能测试。

目前我正在使用磨床进行负载测试。我们记录脚本,然后处理它们以处理异步请求等。该系统目前有效;但是脚本很微妙,我无法在我们的开发周期中维护它们。我需要能够通过一种抽象出 html 和 javascript 细节的编程语言来“运行浏览器”,但它必须是无头的。换句话说,如果我的测试脚本中断,它必须代表应用程序的实际中断。在xvfb中运行 firefox不起作用,因为即使在运行xvfb的无头 linux 机器上,firefox 仍然使用太多资源。我尝试在无头 x 服务器下使用 webdriver 驱动 Firefox。

我已经研究HTMLUnit好几天了,因为这是理想的解决方案。我一直在Jython中编写HTMLUnit驱动程序,因此我可以将它们与磨床一起使用。不幸的是,我遇到了 javascript 错误(这不是 firefox/chrome/IE 中的真正错误),我认为我已经走到了尽头。无论如何,我很了解HtmlUnit,我真的需要一个替代方案。

我知道还有其他一些解决方案(envjszombie.js);但是我不知道这些技术有多发达,我不想再浪费一周时间走上死胡同。

获取 Firefox 或 Webkit 的源代码并注释掉所有渲染/GUI 调用并创建一个真正的无头浏览器有多难?这已经完成了吗?一个人会比另一个人更容易做到这一点吗?老实说,我无法理解为什么这还没有完成,所以我猜这比我预期的要困难得多。

我假设如果我能得到一个具有合理性能特征的真正无头浏览器(我有一个庞大的服务器机群来解决这个问题,但它对于真正的带有 GUI 渲染的 firefox 来说还不够大),那么我将被设置。

0 投票
2 回答
596 浏览

freebsd - FreeBSD 服务器的无头浏览器?

我正在寻找在 FreeBSD 共享 Web 服务器上运行的开源无头浏览器,它可以对当前的 HTML/CSS/JS 进行相当准确的渲染。

由于我对 Unix/服务器不是很熟练并且没有 root 访问权限,因此它应该没有不会安装在典型 Apache 共享 Web 托管服务器上的依赖项(我相信排除 Java 和 HtmlUnit),并且应该理想甚至可以为 FreeBSD 预编译。

我想我需要一个命令行和/或 PHP 可访问的界面(我不太清楚其中的任何一个如何工作)。

如果出现以下情况,请回答此问题:

  • 您已经熟悉 Web 开发中使用无头浏览器(例如页面预览、Google 友好的 AJAX 索引等)在服务器端呈现事物的新趋势。

  • 你有一些软件可以推荐以满足我的需要

谢谢