我需要加载一个网页,执行它的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
做到这一点答案 0 :(得分:5)
也许那是因为您使用的是err.message
,而err
未定义?另一方面,error
已定义。
<强>更新强>
你看了PhantomJS吗?
此外,看起来Aptana Jaxer可以做你想要的。引用John Resig:
想象一下扯掉视觉 渲染部分Firefox和 用Apache的钩子替换它 相反 - 粗略地说是什么 Jaxer是。