我正在尝试为研究项目处理大量数据。我的计算机上有许多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>
- 修改
我发现桌子在另一张桌子里面。使用这段代码我可以得到它,但我现在只得到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());
}
我想我现在正在显示整个表格。如何让我们说第二个元素?
答案 0 :(得分:2)
你的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然后获取第4个子节点(文本节点):
Elements td = doc.select("table table td b");
TextNode el = (TextNode)td.first().childNode(4);
System.out.println(el.text());
答案 1 :(得分:0)
是的,第三个嵌入式表并且可以工作。
元素表= doc.select(“table table”)。first();
还需要在网站上选择不同的表格。我读了关于table:contains(word)。希望能说出来!