Jsoup解析的字段比java中使用的必要字段多
所以我一直在尝试解析这个网站上的城市: 我是jsoup的新手,所以我试着获取城市的名称,但我得到了城市的每一个元素Jsoup解析的字段比java中使用的必要字段多,java,parsing,jsoup,Java,Parsing,Jsoup,所以我一直在尝试解析这个网站上的城市: 我是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
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());
}
要了解有关选择器的更多信息,请访问此处,您可以找到
:eq(n)
:eq(n)
:查找同级索引等于n
的元素;e、 g.表单输入:等式(1)
通过添加如此多的
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());
}
要了解有关选择器的更多信息,请访问此处,您可以找到
:eq(n)
:eq(n)
:查找同级索引等于n
的元素;e、 g.表单输入:等式(1)