gpt4 book ai didi

java - 从html中获取隐藏字段值

转载 作者:行者123 更新时间:2023-11-28 01:50:01 28 4
gpt4 key购买 nike

我正在编写一个获取 html 页面并从隐藏字段中提取值的程序。但是在回应时我没有这个领域,所以我无法从中提取值(value)。

这是html的一部分:

<form class="important" method="post" action="/do">
<button class="important" type="submit">do</button>
<input type="hidden" value="123" name="abc">
</form>

下面是我提取的方法:

DefaultHttpClient httpclient = new DefaultHttpClient();
HttpGet request = new HttpGet("http://localhost/do");
HttpResponse response = httpclient.execute(request);

BufferedReader rd = new BufferedReader(
new InputStreamReader(response.getEntity().getContent()));
StringBuilder result = new StringBuilder();
String line = "";
while ((line = rd.readLine()) != null) {
result.append(line);
}
System.out.println(result.toString());

我得到的结果是

<form class="important" method="post" action="/do">
<button class="important" type="submit">do</button>
</form>

如您所见,我无法从此字段中提取数据。
有什么办法可以实现吗?

最佳答案

这实际上有两种可能性。

1) 隐藏字段仅针对某些 HTTP 请求显示。

这意味着如果某些条件为真,服务器将只呈现该标记。例如,可能 HTTP VERB 必须是 POST,必须存在某个 HTTP header ,必须存在某个 URL 参数,或者必须提供某个 cookie 值。如果您无法查看服务器代码,最简单的诊断方法是使用 Fiddler .这使您可以查看导致所需行为的原始 HTTP 请求,然后尝试使用 Java 复制该请求。

2) 服务器根本不生成隐藏字段。

这意味着有问题的 HTML 内容不是从服务器生成的 ever。验证这一点的最简单方法是在浏览器中使用右键单击->查看页面源代码 查看 HTML 源代码。这将包括服务器呈现的 HTML 内容。如果有问题的 HTML 代码不存在,则非常强烈地表明该代码可能是使用 JavaScript 动态生成的。确认这一点的另一种方法是禁用 JavaScript 并查看代码是否仍存在于 DOM 资源管理器中。如果是这种情况,它意味着客户端生成隐藏输入所需的信息在页面上某处。然后,您将能够解析 HTML 并以另一种方式获取此信息,本质上是重写首先生成隐藏输入的客户端代码。

关于java - 从html中获取隐藏字段值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20639263/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com