【问题标题】:parsing/extracting a HTML Table, Website in Java解析/提取 HTML 表,Java 网站
【发布时间】:2015-09-30 08:30:10
【问题描述】:

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

这里是完整的网站和源代码:

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

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

【问题讨论】:

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


    【解决方案1】:

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

    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" 会给你蒙塔格下的所有 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();
            }
    
        }
    }
    

    【讨论】:

    • 完美答案。我已经使用 jsoup 成功地解析了写得很糟糕的 HTML 中的类似表格。发帖者需要花更多的时间和耐心去学习 jsoup 才能掌握它的窍门。
    • 我已经在使用 selenium 来选择表格标签,如何将其作为 jsoup 文档传递?
    猜你喜欢
    • 1970-01-01
    • 2012-02-22
    • 1970-01-01
    • 1970-01-01
    • 2012-02-21
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多