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

时间:2015-07-11 18:10:31

标签: html html-parsing jsoup html-table html-tableextract

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

  

Blockquote

以下是包含源代码的完整网站:

  

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

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

1 个答案:

答案 0 :(得分:14)

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

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

2)使用Xpath helper

例如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个条目

OR

使用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();
        }

    }
}