在java中读取动态网页内容

时间:2012-04-09 14:10:13

标签: java javascript jquery webharvest

我需要阅读网页内容的帮助。目前我正在使用以下方法来阅读内容

BufferedReader in = new BufferedReader(new InputStreamReader(page.openStream())); 
String inputLine;
while ((inputLine = in.readLine()) != null)
{Content = Content + inputLine;}

然而,使用这种方法存在问题。 。一些jsp页面中有ajax,它们会随机更新网页的css类 Javascript代码只是为了提出一个想法:

if (request.readyState === 4 && request.status === 200) 
{
var type = request.getResponseHeader("Content-Type");
$('.update').empty();
$('.update').append(request.responseText); //update the css class
}

因此,当通过我上面提到的java方法读取此页面阅读器时,我得到

<div class="update"></div>

虽然在屏幕上这个类有一个值。 现在,如果我首先保存页面(通过单击Firefox中的save),那么jquery附加在CSS类中的值也是可见的。 是否有方法或方法可以通过保存页面来读取值或获取像firefox那样的值。我想用字符串中的Ajax值读取整个网页的内容。

一方面我读到这很难,因为浏览器渲染和执行JAvascript所以我想知道firefox有没有可能有帮助的api?任何建议将不胜感激。

2 个答案:

答案 0 :(得分:4)

您可能会发现以下项目很有用:

以下是Data Big Bang的very informative blog post

答案 1 :(得分:2)

同时查看PhantomJS。就像Crowbar是无头的Mozilla浏览器一样,PhantomJS是一个无头的WebKit浏览器 - Safari和谷歌Chrome使用的引擎。