加载网页,执行其JavaScript并将生成的HTML转储到文件中

int*_*ion 3 javascript node.js zombie.js

我需要加载一个网页,执行它的JavaScript(以及标签中包含的所有js文件)并将生成的HTLM转储到文件中.这需要在服务器上完成.我已经尝试过使用zombie.js的node.js,但似乎在现实世界中工作太不成熟了.通常情况下,当真正的浏览器(FireFox)没有页面问题时,它会抛出虚假的异常.

我的node.js代码是:

var zombie = require("zombie"),
    sys = require('sys');

// Load the page
var browser = new zombie.Browser({ debug: false });
browser.visit('http://www.dba.dk', function (error, browser, status) {
    if (error) { console.log('Error:' + error.message); }
    if (!error && browser.statusCode == 200) {
        sys.puts(browser.html);
    }
});
Run Code Online (Sandbox Code Playgroud)

它退出时出现异常"TypeError:无法调用方法'toString'为null"

Jaxer不是一个真正的选择..我需要下载第三方页面并在我的服务器上执行它.我怎么用Jaxer做到这一点

Mar*_*ijn 5

也许那是因为你正在使用err.messageerr未定义? error,在另一方面,限定.


更新

你看过PhantomJS了吗?

此外,看起来Aptana Jaxer可以做你想要的.引用John Resig:

想象一下,扯掉Firefox的视觉呈现部分并用Apache的钩子替换它 - 粗略地说这就是Jaxer的含义.