我需要加载一个网页,执行它的JavaScript(以及包含在标签中的所有js文件)并将生成的HTLM转储到一个文件中。这需要在服务器上完成。我已经用zombie.js尝试了node.js,但它似乎在现实世界中工作太不成熟。更多的时候,它只是抛出一个虚假的异常,而真正的浏览器(FireFox)对页面没有任何问题。加载一个网页,执行它的JavaScript并将生成的HTML文件转储到一个文件中
我的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);
}
});
,并将其与异常“类型错误:无法调用‘的toString’空的”退出
Jaxer的是不是一个真正的选择。我需要下载第三方页面并在我的服务器上执行它。我该怎么做,与Jaxer
如果该行代码是造成误差err必须是零,它是不可能的,因为空的计算结果为假。但是,这意味着真正的错误消息不会记录到控制台。 – 2011-03-22 16:37:08
@OscarKilhed:好点!所以这不能成为错误的真正原因。但是,发布的代码不正确。 – Martijn 2011-03-22 16:40:43
@Martijn:我的错,我纠正了代码。但是,这个错误对实际错误没有影响。有没有其他工具可以达到类似目的?我试图使用jsdom,但无法找到执行页面JavaScript的方法。 – intellion 2011-03-23 09:21:54