gpt4 book ai didi

java - Jsoup 解析超出必要的字段,在 java 中使用

转载 作者:行者123 更新时间:2023-12-01 21:33:53 26 4
gpt4 key购买 nike

所以我一直在尝试从这个网站解析城市:https://en.wikipedia.org/wiki/List_of_cities_in_Switzerland

我是 jsoup 的新手,所以我尝试获取城市的名称,但我得到了城市的每个元素。

Document doc = Jsoup.connect("https://en.wikipedia.org/wiki/List_of_cities_in_Switzerland").userAgent("Mozilla").get();
String title = doc.title();

Elements test = doc.select("table.wikitable").select("tbody").select("tr");

for (Element link : test) {
Elements temp = link.select("td").select("a");
System.out.println(temp.text());

}

例如,我得到了这个 Aarberg Aarberg Bern,而我只想要 Aarberg

最佳答案

添加如此多的 select 调用使事情变得过于复杂。您可以通过使用一个 select 来简化代码,您可以在其中指向要查找的每个元素。用空间来描述祖先与后代的关系。

无论如何,select("td")都会选择所选tr中的每个td。然后,您将收集这些选定的 td 中的每个 a 链接。

要仅选择每个 tr 中的第一个 td,您可以使用选择器 td:eq(0)。然后,您可以从每个第一个 td 中选取每个 a

无论如何,你的代码应该简化为类似的东西:

Elements links = doc.select("table.wikitable tr td:eq(0) a");

for (Element link : links) {
System.out.println(link.text());
}
<小时/>

要了解有关选择器的更多信息,请访问 http://jsoup.org/cookbook/extracting-data/selector-syntax您可以在其中找到 :eq(n) 的说明

:eq(n): find elements whose sibling index is equal to n; e.g. form input:eq(1)

关于java - Jsoup 解析超出必要的字段,在 java 中使用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37171274/

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