解析/提取HTML表格,Java网站

Chr*_*uer 4 html html-table html-parsing jsoup html-tableextract

我想解析这个HTML表的内容:

大段引用

这是一个完整的网站,包含源代码:

http://www.kantschule-falkensee.de/uploads/dmiadgspahw/klassen/A_Klasse_11.htm

我想解析每个单元格的数据,以"Montag"(星期一)下的所有5个单元格为例.我尝试了几种使用JSOUP解析本网站的方法,但我没有取得任何成功.我的主要目标是在Android应用中的列表视图中显示内容.现在我试图在java控制台中打印内容.两种语言都被接受:).任何帮助表示赞赏.

小智 14

以下是您需要遵循的步骤:

1)您可以使用以下任何Java库进行HTML抓取:

2)使用Xpath助手

例如1:输入"//tr[1]//td[1]"查询,它将给出位置(1,1)处的所有表格元素

例如2:"/html/body[@class='tt']/center/table[1]/tbody/tr[4]/td[3]/table/tbody/tr/td" 将在Montag下为您提供所有15个值.

例如3:"/html/body[@class='tt']/center/table[1]/tbody/tr/td/table/tbody/tr/td" 将为您提供表格的所有380个条目

要么

使用Jsoup的示例

import org.jsoup.Jsoup;
import java.io.IOException;

public class Main {
    public static void main(String[] args) throws IOException {
        org.jsoup.nodes.Document doc = Jsoup.connect("http://www.kantschule-falkensee.de/uploads/dmiadgspahw/klassen/A_Klasse_11.htm").get();
        org.jsoup.select.Elements rows = doc.select("tr");
        for(org.jsoup.nodes.Element row :rows)
        {
            org.jsoup.select.Elements columns = row.select("td");
            for (org.jsoup.nodes.Element column:columns)
            {
                System.out.print(column.text());
            }
            System.out.println();
        }

    }
}
Run Code Online (Sandbox Code Playgroud)

  • 完美答案.我已经使用jsoup在编写糟糕的HTML中成功解析了类似的表.原始海报需要花费更多的时间和耐心来研究jsoup以获得它的支持. (2认同)