6
我正在開發一個工具,需要從第三方服務器下載一個網頁,執行它作爲瀏覽器然後解析HTML。我所苦惱的是,在所有的javascript被執行並且DOM被修改之後,該工具需要解析HTML。我正在嘗試使用PhantomJS來達到這個目的,它適用於一小段代碼(只是一個帶有外部javascript的小型html文檔,它爲DOM添加了一些節點),但是當我對一個真實站點(http://www.dba.dk/)做同樣的處理時,我在經過js代碼完成的所有修改後,沒有獲得最終的HTML。PhantomJS並獲得修改DOM
我真的需要幫助,因爲我堅持了一個多星期。
我PhantomJS代碼很簡單:
if (phantom.state.length === 0) {
if (phantom.args.length === 0) {
console.log('Usage: test.js <some URL>');
phantom.exit();
} else {
var address = phantom.args[0];
phantom.state = Date.now().toString();
phantom.viewportSize = { width: 1280, height: 800 };
phantom.open(address);
}
} else {
var elapsed = Date.now() - new Date().setTime(phantom.state);
if (phantom.loadStatus === 'success') {
if (!first_time) {
var first_time = true;
if (!document.addEventListener) {
console.log('Not SUPPORTED!');
}
phantom.render('result.png');
var markup = document.documentElement.innerHTML;
console.log(markup);
phantom.exit();
}
} else {
console.log('FAIL to load the address');
phantom.exit();
}
}
的HTML轉儲到控制檯中不包含的內容生成動態