Kil*_*ord 10 javascript java web-scraping
我想从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://www.glamsham.com/movies/reviews/rowdy-rathore-movie-review-cheers-for-rowdy-akki-051207.asp")
setTimeout(function(){
// 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)
Run Code Online (Sandbox Code Playgroud)
你必须使用幻像中的选项--web-security=no
来允许跨域交互(即对于facebook iframe)
要与phantomjs中的其他应用程序通信,您可以使用Web服务器或发出POST请求:https://github.com/ariya/phantomjs/blob/master/examples/post.js
小智 5
您可以使用HTML Unit,这是一个基于Java的“ GUI LESS浏览器”。您可以轻松获取任何页面的最终渲染输出,因为这会像Web浏览器那样加载页面并返回最终渲染输出。您可以禁用此行为。
更新:您在问一个例子吗?您无需为此做任何额外的事情:
例:
WebClient webClient = new WebClient();
HtmlPage myPage = ((HtmlPage) webClient.getPage(myUrl));
Run Code Online (Sandbox Code Playgroud)
更新2:您可以按以下方式获取iframe:
HtmlPage myFrame = (HtmlPage) myPage.getFrameByName(myIframeName).getEnclosedPage();
Run Code Online (Sandbox Code Playgroud)
请阅读上面链接中的文档。关于在HTMLUnit中获取页面内容,您无能为力
归档时间: |
|
查看次数: |
8837 次 |
最近记录: |