【问题标题】:How a get a variable value from HTML using Java Code?如何使用 Java 代码从 HTML 中获取变量值?
【发布时间】:2016-02-21 17:57:31
【问题描述】:

我对服务器进行了 HttpClient 调用,它以 HTML 响应进行响应。我在其中看到类似

 <html lang="en"><head>
 <script type="text/javascript"><!--
  var testElement = "Y4Yyn%2bZXWcmpz2TadkTlyrc8yGI%3d";   var timeout_redirect_url = "/career?company=asd&loginFlowRequired=true&lang=en_US";
 //--></script>
 </html>

我已将所有 HTML 内容保存到一个字符串中。

现在我拥有了所有的 HTML

String res;

res 包含所有的 HTML。

我需要得到那个testElement 值。我得到的响应是一个字符串。如何获取testElement 值?

我正在尝试解析 jsoup 以获取值,但被击中了。谁能帮帮我。提前致谢。

【问题讨论】:

  • 这里最大的问题是你想要数据,但取而代之的是一个 html 字符串。如果您无法获取非 html 格式的数据,那么您将无法在字符串中搜索描述变量的文本并拼接出相关部分(var testElement = " 和 close " 之间的所有内容)很容易出错。或者您可以创建一个新文档,将 html 字符串插入其中,然后插入另一个脚本标记,该标记将公开局部变量 testElement。 (这可能很复杂。)

标签: javascript java jquery html jsoup


【解决方案1】:

您可以使用正则表达式来完成此操作:

public static void main(String[] args) {
    String test = "<html lang=\"en\"><head>" +
    "<script type=\"text/javascript\"><!--" +
    "var testElement = \"Y4Yyn%2bZXWcmpz2TadkTlyrc8yGI%3d\";   var timeout_redirect_url = \"/career?company=asd&loginFlowRequired=true&lang=en_US\";"+
    "//--></script>"+
    "</html>";
    Pattern pattern = Pattern.compile("(?<=testElement\\s=\\s\").*?(?=\")");

    Matcher matcher = pattern.matcher(test);
    while(matcher.find())
    {
        String s = matcher.group(0);
        System.out.println("" + s);
    }
}

输出:

Y4Yyn%2bZXWcmpz2TadkTlyrc8yGI%3d

试试吧,希望这就是你要找的……

【讨论】:

  • 谢谢。我使用了 split 方法并得到了所需的输出。
【解决方案2】:

实际上,我猜你在 testElement 变量中得到的任何值都是一个对象,你需要取回其中的元素并解析它以获得预期的输出。

【讨论】:

  • 它不是对象。我认为它是一个字符串。如果是字符串,你知道如何获取该值吗?
  • 请提供更多信息,这不足以回答您的问题。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2015-02-13
  • 2019-07-31
  • 2017-03-21
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多