如何通过标签从与其他 class 具有相同名称的跨度 class 中获取元素?

How can I get elements by tag from a span class which has the same name as other classes?

我无法从与其他同名的单个跨度 class 获取内容。在我之前的尝试中,它还给了我其他 span classes 不想要的内容。我找到了一个可行的解决方案,但我认为它不够坚固。

所以我首先连接:

Document doc = Jsoup.connect("https://www.imdb.com/list/ls005750764/").get();

然后我select一个class:

Elements rating = doc.select("div.ipl-rating-star.small");

这个class包含2个span classes,我想要其中一个,是:

"span.ipl-rating__star"

其他范围 classes 在“div.ipl-rating-star.small”之外,因此我的程序中没有重复出现标签名称。这里我将内容添加到数组列表中。

添加到数组列表:

for(Element g: rating) {
    ratings.add(g.getElementsByTag("span").text());
}

当我打印数组列表的内容时,我得到了我想要的内容,更重要的是,它仅来自范围 class 我希望它来自,因为解析被迫停留在 div class 我 selected.

我现在主要关心的是这个 div class 中的另一个跨度 class 因为即使两个标签都是跨度,程序也不会与它混淆。对此的任何想法都会有所帮助。

我成功获得了星级评分:

doc.select("div[class^=\"ipl-rating-star small\"]").select("span[class=\"ipl-rating-star__rating\"]").text().split(" ")

这 returns 一个 String[] 具有您想要的星级。

请查看文档以获取一些可以复制的好示例:https://jsoup.org/cookbook/extracting-data/dom-navigation