java读取动态网页内容

2024-02-02

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

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 中单击“另存为”),则 jquery 在 CSS 类中附加的值也可见。 有没有一种方法或方法可以让我读取值或像 Firefox 那样通过保存页面来获取值。我想使用字符串中存在的 Ajax 值来读取整个网页的内容。

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


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

  • HTMLUnit http://htmlunit.sourceforge.net/gettingStarted.html

这里还有一个内容丰富的博客文章 http://blog.databigbang.com/web-scraping-ajax-and-javascript-sites/来自数据大爆炸。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

java读取动态网页内容 的相关文章

随机推荐

  • 使用 UNION 子句进行 SELECT

    例如 我有这两张桌子 DEPARTMENT DNAME CITY RESEARCH BOSTON IT CITY SCIENCE DALLAS RESEARCH DALLAS 所以我用这个声明 SELECT DNAME FROM DEPAR
  • 如何使 BoxLayout 表现得像垂直 FlowLayout?

    FlowLayout从右侧执行 压力 因此所有组件都试图采用其最小宽度 相反 BoxLayout尝试分散所有组件以填充空间的整个高度 我可以添加一些填充物作为最后一个组件还是使所有组件的高度最小BoxLayout 您可以使用 Box cre
  • 当在下拉列表中选择值时,MVC 使用 ajax 发布值

    我的表单中有几个下拉列表 每次用户在这些下拉列表之一中选择一个值时 我是否希望将该值保存到后端 数据库 我不想重新加载页面 所以我想实现这一点的最佳方法是使用ajax 这就是我需要的帮助 当我在下拉列表中选择一个值时 如何让它自动将值发布到
  • 如何在 Python 2 中发送 HEAD HTTP 请求?

    我在这里尝试做的是获取给定 URL 的标头 以便确定 MIME 类型 我想看看是否http somedomain foo 例如 将返回 HTML 文档或 JPEG 图像 因此 我需要弄清楚如何发送 HEAD 请求 以便我可以读取 MIME
  • 从cmd命令中获取字符串?进程.StartInfo

    所以我尝试过 Process 并启动 cmd exe 并将命令直接发送到该窗口 然后获取写入 cmd exe 窗口的值 代码如下所示 Dim arrServers As ArrayList Dim s ListBoxServers Item
  • 通过 ssh 将脚本和二进制数据传输到 stdin

    我想远程执行一个 bash 脚本 该脚本使用 tarball 并对其执行一些逻辑 诀窍是我只想使用一个 ssh 命令来完成此操作 而不是scp对于 tarball 然后是ssh对于脚本 bash 脚本如下所示 cd tmp tar zx a
  • 过滤唯一值并对 A 到 Z 进行排序 Excel VBA

    我一直在使用下面的代码来过滤唯一值Sheet1并将它们粘贴到Sheet2我的代码工作正常 但它有一个问题 当我从 Sheet1 Range C4 C 单元格中删除任何值时 它会给出空单元格Sheet2就像下面的图片一样 我希望如果我从 Sh
  • 在 python 中使对象可调用的问题

    我写了这样的代码 gt gt gt class a object def init self self call lambda x x gt gt gt b a 我期望类的对象a应该是可调用对象 但显然不是 我不明白为什么 gt gt gt
  • 通过应用具有多个返回值的函数创建多个 pandas DataFrame 列

    我想应用一个具有多个返回值的函数pandas DataFrame并将结果放入单独的新列中DataFrame 所以给出这样的事情 import pandas as pd df pd DataFrame data a 1 2 3 b 4 5 6
  • 如何通过 CSS 和 Javascript 切换多个隐藏字段的显示?

    我想知道如何通过下拉选项切换多个 HTML 字段的显示 假设我有一个包含 3 个选项的下拉菜单 分支机构 区域和部门 如果我选择 分支机构 我希望其下方显示 3 个字段 分支机构编号 站点编号 ID 编号 我对 JavaScript 的了解
  • C# SSL WebSocket 客户端中有 .net 4.0 吗?

    我想知道目前是否有关于这个主题的任何内容 我找到了各种例子EG 4 5 system net websockets websocket http msdn microsoft com en us library system net web
  • 从地图容器中查找大于用户指定值的第一个值

    我有一个地图容器 如何使用 find if 返回第一个大于用户指定搜索值的值 如下所示 std map
  • 如何获取重定向的 URL

    我有一个 URL 当我尝试在浏览器中打开它时 它将重定向到另一个 URL 并显示内容 我想要该内容 但我没有收到重定向的 URL 所以 我无法显示数据 我怎样才能以编程方式做到这一点 例如我有的网址 http www windpoweren
  • 从相同源代码生成的两个DLL文件有什么区别

    我的所有代码都受源代码控制 因此我 100 确定源代码没有更改 但是 如果我构建 C DLL 两次 它们的内容会略有不同 我可以通过构建然后再次构建来 100 重现问题 这似乎根本不会影响程序 但是像 MSIMSP 这样用于从两个 MSI
  • 是否可以在mysql语句中运行apriori关联规则?

    数据库 Transacation Items List T1 butter T1 jam T2 butter T3 bread T3 ice cream T4 butter T4 jam 在上表中 是否可以在mysql语句中运行aprior
  • Crypto++ AES 解密如何?

    那里几乎没有关于 crypto 的菜鸟指南 或者无论如何我都没有找到 我想要做的是解密使用另一个 AES 加密器生成的 uchar 数组 我该从哪里开始呢 我已经建立了图书馆并链接了盛大的图书馆 我是否需要设置任何内容 或者只是在数组上调用
  • 如何在 C# 中生成 JSON Web 密钥 (JWK)

    我需要使用 C 生成 JSON Web Key jwk 如图所示 我已经阅读了几篇文章 但也有其他语言 例如 Java 的实现 并且有第三方库 Nimbus JOSE JWT 库等 您能帮我用 C 生成 JSON Web Key 吗 e A
  • 如何在骆驼单元测试中模拟多个组件?

    我正在使用CamelTestSupport在骆驼版本 2 13 1 中 我想做这样的事情来模拟两个不同的组件 Override public String isMockEndpoints return activemq exec 我不能只是
  • 在Python中重写OptionParser的add_option函数

    我写了一个子类Option and OptionParser在 optparse 中 我正在重写add optionOptionParser 中的函数使其解析新关键字 以下是我的代码 from optparse import Option
  • java读取动态网页内容

    我需要帮助阅读网页内容 目前我正在使用以下方法来读取内容 BufferedReader in new BufferedReader new InputStreamReader page openStream String inputLine