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

时间:2011-03-22 14:06:29

标签: 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);
    }
});

并以异常“TypeError:无法调用方法'toString'为null”退出

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

做到这一点

1 个答案:

答案 0 :(得分:5)

也许那是因为您使用的是err.message,而err未定义?另一方面,error 已定义。


<强>更新

你看了PhantomJS吗?

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

  

想象一下扯掉视觉   渲染部分Firefox和   用Apache的钩子替换它   相反 - 粗略地说是什么   Jaxer是。