可以执行 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(渲染引擎解释引擎)组成初体验