gpt4 book ai didi

java - 使用 Jsoup 从 HTML 获取多个表

转载 作者:行者123 更新时间:2023-11-30 03:50:40 25 4
gpt4 key购买 nike

我正在尝试从该网站上的多个表中抓取数据:http://www.national-autograss.co.uk/march.htm

我需要将表数据及其各自的日期保存在 h2 中,所以我想要一种方法来执行以下操作:

  • 查找第一个日期标题 h2
  • 提取h2下的表数据(可以是多个表)
  • 转到下一个标题并提取表格等

我已经编写了代码来单独提取所有部分,但我不知道如何提取数据以使其与相关的日期标题保持一致。

任何帮助或指导将不胜感激。我开始使用的代码如下,但正如我所说,它所做的只是迭代数据。

import java.io.IOException;

import org.jsoup.Jsoup;
import org.jsoup.nodes.Document;
import org.jsoup.nodes.Element;
import org.jsoup.select.Elements;


public class Main {

public static void main(String[] args) {

Document doc = null;
try {
doc = Jsoup.connect("http://www.national-autograss.co.uk/march.htm").get();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
Elements elementsTable1 = doc.select("#table1");
Elements elementsTable2 = doc.select("#table2");
Elements dateElements = doc.select("h2");

for (int i = 0; i < dateElements.size(); i++) {
System.out.println(dateElements.get(i).text());
System.out.println(elementsTable1.get(i).text());
System.out.println(elementsTable2.get(i).text());

}

}
}

最佳答案

看来你想要的值存储在<tr>里面位于一个表中,其中每个表中的第一个子项都是 <h2> .

<table align="center"><col width="200"><col width="150"><col width="100"><col width="120"><col width="330"><col width="300">
<h2>Sunday 30 March</h2>
<tr id="table1">
<td><b>Club</b></td>
<td><b>Venue</b></td>
<td><b>Start Time</b></td>
<td><b>Meeting Type</b></td>
<td><b>Number of Days for Meeting</b></td>
<td><b>Notes</b></td>

</tr>
<tr id="table2">
<td>Evesham</td>
<td>Dodwell</td>
<td>11:00am</td>
<td>RO</td>
<td>Single Days Racing</td>
<td></td>
</tr>
</table>

我的建议是,当第一个 child 是 h2 时,您搜索所有表。你对其其余的 child 做一些事情:

Elements tables = doc.select("table");
for(Element table : tables) {
if(table.child(0).tagName().equals("h2")) {
Elements children = table.children()
}
}

希望这有帮助!

编辑:您想要删除所有 <col>之前<h2>因为它们将出现在它之前(之前没有注意到这一点):

for(Element element : doc.select("col"))
{
element.remove();
}

关于java - 使用 Jsoup 从 HTML 获取多个表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24548282/

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