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

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

【问题讨论】:

    标签: java php javascript ruby browser


    【解决方案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,请务必查看 HtmlUnitHttpUnit

          【讨论】:

            【解决方案5】:

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

            【讨论】:

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

            【讨论】:

            • +1 忘了那个...在我的 Mac 上,我只是使用 Python 的 Applescript 功能在 Safari 上直接运行 JS。
            • 更新社区版本的链接:envjs.comgithub.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 的任何东西。

              【讨论】:

                猜你喜欢
                • 1970-01-01
                • 2011-10-02
                • 1970-01-01
                • 1970-01-01
                • 2011-10-15
                • 1970-01-01
                • 2014-11-17
                • 2012-08-29
                • 2012-02-22
                相关资源
                最近更新 更多