我需要加载一个网页,执行它的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: Cannot call method 'toString‘of null“
Jaxer不是一个真正的选择..我需要下载一个第三方页面,并在我的服务器上执行它。我该如何使用Jaxer做到这一点呢
发布于 2011-03-22 22:24:01
也许这是因为您使用的是err.message,而err没有定义?另一方面,error是定义的。
更新
你查看过PhantomJS吗?
而且,看起来Aptana Jaxer可以做你想做的事情。引用John Resig
想象一下,去掉火狐的可视化渲染部分,代之以到Apache的钩子--粗略地说,这就是Jaxer。
https://stackoverflow.com/questions/5392532
复制相似问题