Как извлечь HTML-таблицу из определенного веб-сайта во внешний HTML-файл? - PullRequest
0 голосов
/ 05 июня 2019

Меня попросили написать приложение, которое будет загружать только основную таблицу (помеченную как report_table) по указанному URL-адресу https://www.ote -cr.cz / en / statistics / electric-imbalances-1 и хранитьэто в отдельном HTML-файле.

Мне удалось загрузить содержимое таблицы, однако мне не удается правильно оформить его, как меня просят.Вот мой код:

    Document doc = Jsoup.connect(url).get();

    System.out.println(doc);
    Element tableElement = doc.select("table.table.report_table").first();

    Elements tableHeaderElements = tableElement.select("thead tr th");
    System.out.println("headers");

    for (int i = 0; i < tableHeaderElements.size(); i++) {
        System.out.println(tableHeaderElements.get(i).text());
        writer.append(tableHeaderElements.get(i).text());

        if (i != tableHeaderElements.size() - 1) {
            writer.append(',');
        }
    }
    writer.append('\n');
    System.out.println();

    Elements tableRowElements = tableElement.select(":not(thead) tr");

    for (int i = 0; i < tableRowElements.size(); i++) {
        Element row = tableRowElements.get(i);
        System.out.println("row");
        Elements rowItems = row.select("td");
        for (int j = 0; j < rowItems.size(); j++) {
            System.out.println(rowItems.get(j).text());
            writer.append(rowItems.get(j).text());

            if (j != rowItems.size() - 1) {
                writer.append(' ');
            }
        }
        writer.append('\n');
    }

    writer.close();
}

Что я должен добавить к своему коду, чтобы получить таблицу с правильным стилем в отдельном HTML?

1 Ответ

0 голосов
/ 05 июня 2019

Это извлекает HTML-таблицу (без CSS) и сохраняет ее в файл

public class Parser {
    public void parseAndWrite() {

        Document doc;
        try {
            doc = Jsoup.connect(" https://www.ote-cr.cz/en/statistics/electricity-imbalances-1").get();

            PrintWriter writer = new PrintWriter(new File("out.html"));
            System.out.println(doc);
            Element tableElement = doc.select("div.bigtable").first();

            writer.write(tableElement.toString());

            writer.close();
        } catch (IOException e) {
            // LOG may be?
        }
    }

Надеюсь, это поможет

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...