gpt4 book ai didi

java - 在java中使用JSoup解析没有ID的html表

转载 作者:行者123 更新时间:2023-12-02 06:17:57 25 4
gpt4 key购买 nike

我正在尝试为一个研究项目处理大量数据。我的计算机上有许多html文件,我需要将一些信息读入java程序中。

我使用Jsoup来加载文档。

不幸的是,html 中的表没有类或 id(并且有多个表)。我已经搜索了堆栈,但我找到的所有答案都使用 table.class。

如何从下表中获取数据(18/01/2014)? doc.select 现在无法工作,因为我认为缺少类

I am trying something like this:

Element table = doc.select("table").first();

Iterator<Element> ite = table.select("td").iterator();

ite.next();

System.out.println("Value 1: " + ite.next().text());
System.out.println("Value 2: " + ite.next().text());
System.out.println("Value 3: " + ite.next().text());
System.out.println("Value 4: " + ite.next().text());




<table border=0 cellpadding=0 cellspacing=0 width=650 height=18><tr><td class="header" style="color:#FFFFFF;"><table border=0 cellpadding=0 cellspacing=0><tr>
<td><img src="/images/title_ultratop.png"></td><td style="color:#FFFFFF;vertical-align:middle;"><b>50 DANCE<br>
<a href="link"><img src="/images/arr_bw.png" border=0 style="margin-bottom:1px;margin-right:3px;"></a>18/01/2014
</b></td></tr></table>

--编辑

我发现这张 table 在另一张 table 里面。使用这段代码我可以得到它,但我现在只得到 1 行。只是表格,我还需要从中获取一个元素。

 Element table = doc.select("table table").first();

for (Element row : table.select("tr")) {
Elements tds = row.select("td");
System.out.println(tds.get(0).text());

}

我想我现在正在显示整个表格。如何获得第二个元素?

最佳答案

您的 html 存在一些问题。我认为正确的是:

<table border="1" cellpadding="0" cellspacing="0" width="650" height="18">
<tr>
<td class="header" style="color:#FFFFFF;">
<table border="1" cellpadding="0" cellspacing="0">
<tr>
<td><img src="/images/title_ultratop.png"></td>
<td style="color:#FFFFFF;vertical-align:middle;">
<b>50 DANCE
<br>
<a href="link"><img src="/images/arr_bw.png" border="0"
style="margin-bottom:1px;margin-right:3px;"></a>
18/01/2014
</b>
</td>
</tr>
</table>
</td>
</tr>
</table>

为了获取该节点,您必须选择:table table td b,然后获取第四个子节点(文本节点):

    Elements td = doc.select("table table td b");
TextNode el = (TextNode)td.first().childNode(4);
System.out.println(el.text());

关于java - 在java中使用JSoup解析没有ID的html表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21281197/

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