2011-03-22 27 views
2

我需要加载一个网页,执行它的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

回答

5

也许这是因为你使用err.messageerr没有定义? error,另一方面,定义的。


更新

你看看PhantomJS

此外,它看起来像Aptana Jaxer可以做你想做的。引述John Resig

Imagine ripping off the visual rendering part of Firefox and replacing it with a hook to Apache instead - roughly speaking that's what Jaxer is.

+0

如果该行代码是造成误差err必须是零,它是不可能的,因为空的计算结果为假。但是,这意味着真正的错误消息不会记录到控制台。 – 2011-03-22 16:37:08

+0

@OscarKilhed:好点!所以这不能成为错误的真正原因。但是,发布的代码不正确。 – Martijn 2011-03-22 16:40:43

+0

@Martijn:我的错,我纠正了代码。但是,这个错误对实际错误没有影响。有没有其他工具可以达到类似目的?我试图使用jsdom,但无法找到执行页面JavaScript的方法。 – intellion 2011-03-23 09:21:54

相关问题