如何使用 jsoup 从网页中提取 javascript 的某些部分?

How extract some part of a javascript from a webpage using jsoup?

我想从 blow 脚本中提取一些数据

$(document).ready(function(){ 
  $("#areaName").val(1);$("#state").val(29);$("#city").val(1);
  $("#subareaName").val(1);$("#lane").val(1);
}

like areaName value = 1, state value = 29, city value = 1, subareaName value = 1, lane value = 1

如何使用 jsoup 实现此目的?

Jsoup 是 html (xml) 解析器。您可以使用它从页面源中提取 javascript,例如:Elements scripts = document.select("script");

那你就得自己解析脚本了。您可以使用正则表达式来这样做。 这是一个例子。

    final String propertyName = "areaName";
    final String regex = "#" + propertyName + ".*?val\((.*?)\)";
    final String script = "$(document).ready(function(){ \n"
            + "  $(\"#areaName\").val(1);$(\"#state\").val(29);$(\"#city\").val(1);\n"
            + "  $(\"#subareaName\").val(1);$(\"#lane\").val(1);\n"
            + "}";

    final Pattern pattern = Pattern.compile(regex, Pattern.MULTILINE);
    final Matcher matcher = pattern.matcher(script);

    if (matcher.find() && matcher.groupCount() > 0) {
        String areaName = matcher.group(1);
        System.out.println(propertyName + ": " + areaName);
    }