2014-03-29 70 views
1

如何在網頁上評估所有javascript後獲得'final'html。例如,如果您查看簡單Google搜索https://www.google.com/#q=books的頁面源代碼,那麼您可以真正看到的是一堆javascript。但是,如果你'檢查元素',你可以看到由JavaScript呈現的實際html。我要這個。在html中評估所有JavaScript以獲取最終的html文檔(java)

我試着搞亂HtmlUnit和JSOUP,但我只是不明白如何得到最終'呈現'的HTML。也許我錯過了一些JavaScript執行調用?

我已經試過的HtmlUnit:

final HtmlPage page = webClient.getPage(url); 
    System.out.println(page.asXml()); 

和JSOUP:

Document doc = Jsoup.connect(url).get(); 
    System.out.println(doc.toString()); 

但無論似乎解決google.com搜索的JavaScript。

編輯:它似乎可能只是谷歌的瘋狂javascripts,我有麻煩評估。我可以通過指向一個非常簡單的HTML

<!DOCTYPE html> 
<html> 
<body> 

<script type="text/javascript"> 
document.write("Welcome!!!"); 
</script> 

</body> 
</html> 
+0

那麼,JS應用後,你不會得到HTML,而是一個DOM樹。 DOM樹基本上是一組具有屬性的節點,所以最簡單的方法是遍歷它並打印節點。 – aZen

+0

我認爲這是你正在尋找的服務器端插件。我對麼? – aravind

+0

我也嘗試使用HtmlUnit 爲(DomNode節點:page.getDescendants())做這樣的事情// System.out.println(node.toString());如果(節點instanceof HtmlScript){(HtmlScript)節點).executeScriptIfNeeded(); System.out.println(「Rendered script:」+ node.asText()); } } 但是,這似乎打印的JavaScript了,並沒有評估任何東西。也許這是與谷歌JavaScript特定的東西?我可以嘗試一個更簡單的JavaScript html頁面。 – user3474728

回答

相關問題