2011-03-22 54 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

相關問題