2016-07-23 87 views
0

我需要以下條件: 如果我發送一個GET請求是這樣的:PhantomJS get請求顯示靜態頁面,而不是完全加載頁面

page.open("<URL>",function (status) { 
    // If connection wasn't successful: 
    if (status !== 'success') { 
     console.log('Unable to access network'); 
    } else { 
     console.log(page.content) 
    } 
} 

我得到記錄就像當你用鼠標右鍵單擊頁面和頁面點擊查看頁面源代碼....我需要它是當你打開Chrome瀏覽器內的開發人員工具,並看到所有的JavaScript完成的結果頁面。可能嗎?

+0

歡迎堆棧溢出!如果鏈接副本不適用於您...您使用哪個PhantomJS版本?請註冊onConsoleMessage,onError,onResourceError,onResourceTimeout事件([Example](https://gist.github.com/artjomb/4cf43d16ce50d8674fdf#file-1_phantomerrors-js))。也許有錯誤。 –

回答

0

有一個onLoadFinished處理這應該給你的內容在頁面完全加載後:

http://phantomjs.org/api/webpage/handler/on-load-finished.html

page.onLoadFinished = function(status) { 
    console.log('Status: ' + status); 
    if (status !== 'success') { 
    console.log('Unable to access network'); 
    } else { 
    console.log(page.content) 
    } 
}; 
+0

它實際上不提供我想要的。在我的網頁上有很多'

'。如果我將'onLoadFinished'中的頁面內容解析爲DOM(HTML),'html.getElementsByClassName(「podSplashRow」)'的長度等於0 – duri

+0

在這種情況下,UI元素在頁面加載完成後加載。你可以嘗試'var html = page.evaluate(function(){return document.documentElement.outerHTML;}); console.log(html);' – mxlse

+0

它只是不給我想要的結果。我在開發人員工具中看到的許多元素在此代碼中缺失,就像一些JavaScript沒有進行或沒有進行過什麼。 – duri