我使用phantomjs 2.1.1,有些事情正在困擾着我。 下面是一段代碼,我使用的刮網址和網站的HTML被寫入output.html文件phantomjs - 在頁面加載後執行Javascript函數,然後輸出新的更改
page = require('webpage').create();
page.open(url, function (status) {
if (status !== 'success') {
console.log('Unable to load the address!');
phantom.exit();
} else {
window.setTimeout(function() {
var content = page.content;
fs.write("output.html", content, 'w');
}, 40000); //40 seconds timeout
}
});
現在,我需要刮其paginations了。下一頁由JavaScript函數頁面(2)加載;或第(3)頁;我試圖把它用
var pageinationOutput = page.evaluate(function (s) {
page(2);
});
console.log(pageinationOutput); // I need the output made by the `page(2);` call.
page = require('webpage').create();
page.open(url, function (status) {
if (status !== 'success') {
console.log('Unable to load the address!');
phantom.exit();
} else {
window.setTimeout(function() {
var content = page.content;
fs.write("output.html", content, 'w');
}, 40000); //40 seconds timeout
}
});
做,但我沒有得到這方面的任何輸出。 如何在頁面完成加載後執行JavaScript函數,並獲得發生在javascript執行後的網站內容的新更改,在這種情況下,網站將在頁面(2)後調用下一頁(使用ajax) );方法調用。
在此先感謝!