可以执行 JavaScript 的服务器端浏览器

Posted

技术标签:

【中文标题】可以执行 JavaScript 的服务器端浏览器【英文标题】:Server side browser that can execute JavaScript 【发布时间】:2011-01-09 16:19:50 【问题描述】:

是否有任何可用的编程库可以解析 html 文档、执行 javascript 并允许我浏览 DOM?这需要在服务器端执行,而不是客户端。任何语言都可以,但首选 Java、php 或 Ruby。

【问题讨论】:

【参考方案1】:

node.js ?

Node 可以在其控制台中运行任何 javascript 文件。我会先尝试 node 看看它是否可以做你想做的事情,因为它可能拥有最大的用户群和文档。

【讨论】:

【参考方案2】:

现在有几个项目在这方面做得非常好:

PhantomJS 是 WebKit 的无头版本,还有一些有用的包装器,例如 CasperJS。

Zombie.js 是用 Javascript (Node.js) 编写的 jsdom 的包装器。

您需要编写 JavaScript 代码来与这两个项目进行交互。到目前为止,我更喜欢 Zombie.js,因为它更易于设置,并且您可以在代码中使用任何 Node.js/npm 模块。

【讨论】:

【参考方案3】:

PhantomJS 可以做到这一点,并且可以与任何服务器端语言一起使用。请参阅下面的一些 NodeJS 和 PHP 集成模块

NodeJS

https://npmjs.org/package/node-phantom

https://github.com/sgentle/phantomjs-node

PHP

https://github.com/diggin/php-PhantomjsRunner

【讨论】:

【参考方案4】:

对于 Java,请务必查看 HtmlUnit 和 HttpUnit。

【讨论】:

【参考方案5】:

从this post 开始并点击链接。或者只搜索 Rhino。

【讨论】:

哦...与 Luca Matteis 提供的相同链接...对不起!【参考方案6】:

你试过Bringing the Browser to the Server吗?

【讨论】:

+1 忘了那个...在我的 Mac 上,我只是使用 Python 的 Applescript 功能在 Safari 上直接运行 JS。 更新社区版本的链接:envjs.com 和 github.com/thatcher/env-js【参考方案7】:

在java中:http://lobobrowser.org/cobra/java-html-parser.jsp 这是一个支持 Javascript、支持 CSS 的 HTML 解析器 与您的问题相关的最重要的功能:它是 Javascript 感知的。解析期间发生的 DOM 修改将反映在生成的 DOM 中。

【讨论】:

链接关闭,请镜像。【参考方案8】:

Java 已经支持 Rhino 的 javascript,也可以查看这个页面以获取服务器端 javascript 解决方案:http://en.wikipedia.org/wiki/Server-side_JavaScript

【讨论】:

【参考方案9】:

PHP 有 DOMDocument 用于导航 DOM。我还没有听说过执行 JavaScript 的任何东西。

【讨论】:

以上是关于可以执行 JavaScript 的服务器端浏览器的主要内容,如果未能解决你的问题,请参考以下文章

跨域的请求在服务端会不会真正执行?

0086 初识JavaScript:是什么浏览器执行 JS(渲染引擎解释引擎)组成初体验

node简介

使用 bing 地图 API,我可以进行服务器端调用并获取给定城市的纬度/经度吗?

什么是javascript?

20171201