我想知道是否可以在服务器端运行浏览器(特别是浏览器引擎)。我不只是要渲染一个页面,而是要让浏览器保持打开一段时间,运行一些 JS,做一些点击或按下一些键,同时获取图形输出。
有谁知道如何做到这一点?到目前为止,我唯一的想法是在 VNC、RDP 等会话中运行浏览器,但这对我来说似乎有点矫枉过正。
我想知道是否可以在服务器端运行浏览器(特别是浏览器引擎)。我不只是要渲染一个页面,而是要让浏览器保持打开一段时间,运行一些 JS,做一些点击或按下一些键,同时获取图形输出。
有谁知道如何做到这一点?到目前为止,我唯一的想法是在 VNC、RDP 等会话中运行浏览器,但这对我来说似乎有点矫枉过正。
PhantomJS 做你所描述的。它基本上是一个无头浏览器 - http://phantomjs.org/
您可以通过任何服务器端语言在服务器端运行它。请参阅下面的一些 NodeJS 和 PHP 集成模块
节点JS
https://npmjs.org/package/node-phantom
https://github.com/sgentle/phantomjs-node
PHP
是的,很可能在服务器上运行 Web 浏览器。例如,Ubuntu Server 可以通过简单地安装 firefox 和 xserver 来运行 firefox。
$ sudo apt-get install firefox
$ sudo apt-get install xserver-xorg
然后让firefox运行类型:
$ X
这将留下一个空白屏幕,因为显示器上还没有运行任何应用程序。您需要使用 Ctrl-Alt-F2 切换回新终端。Ctrl-Alt-F1 现在持有 X 进程。
登录到新终端并将环境的显示变量设置为 :0 并启动 firefox。
$ export DISPLAY=:0
$ firefox &
Firefox 现在应该正在运行,但您会注意到它有一些怪癖。如果您决定要继续进行此操作,则应安装窗口管理器。我会选择一个轻量级的平铺窗口管理器并运行 firefox 和任何其他应用程序需要在该窗口管理器中进行图形输出。