如何通过标签从与其他 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
我无法从与其他同名的单个跨度 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