我是第一年从事某个项目的cs学生,我需要从网站上获取温度日期。我试图用Jsoup来做这件事,但我发现缺乏关于入门的好教程。这是我试图解析的HTML。
<span class="actual-temp ng-isolate-scope ng-binding" aria-label="Actual Temperature" data-wx-temperature="obs.getTemp()" data-show-temp-unit="true">
<!-- ngIf: hasValue() -->
<span data-ng-if="hasValue()" data-ng-bind-template="32" class="ng-scope ng-binding">32</span>
<!-- end ngIf: hasValue() -->
<!-- ngIf: hasValue() -->
<sup data-ng-if="hasValue()" class="deg ng-scope">°</sup>
<!-- end ngIf: hasValue() -->
<!-- ngIf: showTempUnit -->
<sup class="temp-unit ng-scope ng-binding" data-ng-if="showTempUnit" data-ng-bind-template="F">F</sup>
具体来说,我试图从中提取数字32。任何帮助将不胜感激!
答案 0 :(得分:1)
根据您提供的一小段代码,可以提取温度。您可能需要修改代码才能使用完整的HTML。 (为简单起见,故意省略所有检查或优化)
Document doc = Jsoup.parse("<span class=\"actual-temp ng-isolate-scope ng-binding\" aria-label=\"Actual Temperature\" data-wx-temperature=\"obs.getTemp()\" data-show-temp-unit=\"true\">\n"
+ " <!-- ngIf: hasValue() -->\n"
+ " <span data-ng-if=\"hasValue()\" data-ng-bind-template=\"32\" class=\"ng-scope ng-binding\">32</span>\n"
+ " <!-- end ngIf: hasValue() -->\n"
+ " <!-- ngIf: hasValue() -->\n"
+ " <sup data-ng-if=\"hasValue()\" class=\"deg ng-scope\">°</sup>\n"
+ " <!-- end ngIf: hasValue() -->\n"
+ " <!-- ngIf: showTempUnit -->\n"
+ " <sup class=\"temp-unit ng-scope ng-binding\" data-ng-if=\"showTempUnit\" data-ng-bind-template=\"F\">F</sup>\n"
+ " </span>");
Elements rows = doc.getElementsByAttributeValue("class", "ng-scope ng-binding");
String temperature;
for (Element span : rows) {
temperature = span.text();
}
System.out.println("temperature = " + temperature);