gpt4 book ai didi

java - 为什么 Jsoup 中没有执行循环?

转载 作者:行者123 更新时间:2023-11-30 06:47:25 24 4
gpt4 key购买 nike

我正在尝试为英雄联盟页面制作一个网络抓取。我试图首先从这里获取所有冠军的列表 http://gameinfo.euw.leagueoflegends.com/en/game-info/champions/ .

但是,我不明白为什么我的循环不起作用。

这是我的代码:

    Document doc = Jsoup.connect("http://gameinfo.euw.leagueoflegends.com/en/game-info/champions").get();
Elements span = doc.select("div#champion-grid-container > div.content-border > div#champion-grid-content > div.rg-box-container rg-display-Riot.champions.GridView > ul > li");
if(span != null){
System.out.println("The class grid exist!!");
Elements lista = span.select("li#champion-grid-aatrox");
if(lista != null){
System.out.println("li#champion-grid-aatrox Exist!!");
}else{
System.out.println("Nop :(");
}
Elements maidep = lista.select("div.champ-name");
if(maidep != null){
System.out.println("div.champ-name Exist!!");
}else{
System.out.println("Nop :(");
}
Elements maidep2 = maidep.select("a[href]");
if(maidep2 != null){
System.out.println("a Exist!!");
}else{
System.out.println("Nop :(");
}
for(Element nuj : maidep2)
System.out.println("Content is " + nuj.text());
}
else {
System.out.println("Class Grid Nop:(");
}

我知道这样选择 div 是一种不好的做法,一开始我尝试在一次选择中一路选择该特定元素,但它没有返回任何内容,所以我想遍历每个 div/父元素,直到我到那里看看它在哪里迷路了。输出是这样的:

The class grid exist!!
li#champion-grid-aatrox Exist!!
div.champ-name Exist!!
a Exist!!

因此“内容是”消息甚至不会显示。

最佳答案

根据JSoup doc , Elements.select()

returns the filtered list of elements, or an empty list if none match.

因此,检查 Element 是否为 null 不足以判断您的选择器是否与任何元素匹配。相反,您应该检查 elements.size() > 0 ,并且您可能会发现您的选择器之一没有匹配任何内容。

您可以使用 this site实时尝试您的选择器并节省一些时间。

关于java - 为什么 Jsoup 中没有执行循环?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43471512/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com