gpt4 book ai didi

java - 使用jsoup从表的第一列获取数据

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

为了解决我的问题,我创建了一个简单的 HTML 页面,其摘录如下:

<table class="fruit-vegetables">
<thead>
<th>Fruit</th>
<th>Vegetables</th>
</thead>
<tbody>
<tr>
<td>
<b>
<a href="https://en.wikipedia.org/wiki/Apple" title="Apples">Apples</a>
</b>
</td>
<td>
<a href="https://en.wikipedia.org/wiki/Carrot" title="Carrots">Carrots</a>
</td>
</tr>
<tr>
<td>
<i>
<a href="https://en.wikipedia.org/wiki/Orange_%28fruit%29" title="Oranges">Oranges</a>
</i>
</td>
<td>
<a href="https://en.wikipedia.org/wiki/Pea" title="Peas">Peas</a>
</td>
</tr>
</tbody>
</table>

我想使用 Jsoup 从名为“Fruit”的第一列中提取数据。因此,结果应该是:

Apples
Oranges

我编写了一个程序,其摘录如下:

//In reality, it should be connect(html).get(). 
//Also, suppose that the String `html` has the full source code.
Document doc = Jsoup.parse(html);

Elements table = doc.select("table.fruit-vegetables").select("tbody").select("tr").select("td").select("a");

for(Element element : table){
System.out.println(element.text());
}

该程序的结果是:

Apples
Carrots
Oranges
Peas

我知道有些事情不太好,但我找不到我的错误。 Stack Overflow 中的所有其他问题都没有解决我的问题。我必须做什么?

最佳答案

您似乎正在寻找

Elements el = doc.select("table.fruit-vegetables td:eq(0)");
for (Element e : el){
System.out.println(e.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)

所以td:eq(0)我们正在选择每个 <td>这是其父级的第一个子级 - 在本例中 <tr> .

关于java - 使用jsoup从表的第一列获取数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36315461/

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