我想从打击脚本中提取一些数据
$(document).ready(function(){
$("#areaName").val(1);$("#state").val(29);$("#city").val(1);
$("#subareaName").val(1);$("#lane").val(1);
}
like areaName值= 1,州值= 29,城市值= 1,subareaName值= 1,车道值= 1
如何使用jsoup实现此目的?
答案 0 :(得分:0)
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);
}