使用Javascript获取最终HTML将Java呈现为字符串

我想从HTML页面获取数据(刮掉它)。 但它包含javascript的评论。 在普通的java url fetch中,我只获取了没有执行Javascript的HTML(实际的)。 我想要执行Javascript的最终页面。

示例: – http://www.glamsham.com/movies/reviews/rowdy-rathore-movie-review-cheers-for-rowdy-akki-051207.asp

此页面的评论为facebook插件,以Javascript格式提取。

即使在此也类似于此。 http://www.imdb.com/title/tt0848228/reviews

我该怎么办?

使用phantomjs : http : //phantomjs.org

var page = require('webpage').create(); page.open("http://sofzh.miximages.com/java/ Where you want to save it page.render(screenshoot.png") // You can access its content using jQuery var fbcomments = page.evaluate(function(){ return $(".fb-comments iframe").contents().find(".postContainer") }) },10000) 

你必须使用幻像中的选项--web-security=no来允许跨域交互(即对于facebook iframe)

要与phantomjs中的其他应用程序通信,您可以使用Web服务器或发出POST请求: https : //github.com/ariya/phantomjs/blob/master/examples/post.js

您可以使用HTML Unit ,一个基于Java的“GUI LESS Browser”。 您可以轻松获取任何页面的最终渲染输出,因为这会在Web浏览器这样做时加载页面并返回最终渲染的输出。 您可以禁用此行为。

更新:你问的例子? 这样做你不需要做任何额外的事情:

例:

 WebClient webClient = new WebClient(); HtmlPage myPage = ((HtmlPage) webClient.getPage(myUrl)); 

更新2:您可以按如下方式获取iframe:

 HtmlPage myFrame = (HtmlPage) myPage.getFrameByName(myIframeName).getEnclosedPage(); 

请阅读上面链接的文档。 在HTMLUnit中获取页面内容没有什么不可做的