如何从 div 标签属性解析 Aria-Label?

How to parse Aria-Label from a div tag attribute?

我正在使用 JSoup 解析一些 HTMLL 信息,我想解析特定 div 属性的 aria 标签值。我试图解析的行如下:

<div class="tiny-star star-rating-non-editable-container" aria-label=" Rated   5 stars out of five stars ">

我用过以下:

Document document = Jsoup.connect(url).get();
Elements stars= document.select("div.tiny-star star-rating-non-editable-container[aria-label]");
String value = stars.text();
System.out.println("The rating is " + value);

但是,String 值,returns 为空。为什么是这样?

那个选择器表达式不会给你你所期望的。它被视为由两部分组成的选择器

  • div.tiny-star - 查找具有 class tiny-star
  • div 元素
  • star-rating-non-editable-container[aria-label] - 然后寻找具有 aria-label 属性
  • 的后代 star-rating-non-editable-container 元素

试试更像

Element divWithStars = document.select(
   "div.tiny-star.star-rating-non-editable-container[aria-label]");
String ariaLabel = divWithStars.attr("aria-label");

注意 tiny-starstar-rating-... 之间的点而不是 space,以及 select returns 元素承载 aria-label 属性 ,而不是属性本身 - 您必须使用 attr 来提取属性值。