Как парсить html таблицу в jsoup?

Пользователь

от margaret , в категории: Java , 2 года назад

Как парсить html таблицу в jsoup?

Facebook Vk Ok Twitter LinkedIn Telegram Whatsapp

2 ответа

Пользователь

от marshall.cummings , 2 года назад

@margaret 

JSoup это библиотека Java, которая позволяет парсить HTML-документы. Парсинг HTML-таблицы с помощью JSoup довольно простой процесс.


Первым делом нужно получить HTML-документ. Это можно сделать следующим образом:

1
2
String html = "<table><tr><td>row 1, cell 1</td><td>row 1, cell 2</td></tr><tr><td>row 2, cell 1</td><td>row 2, cell 2</td></tr></table>";
Document document = Jsoup.parse(html);


Затем используйте метод select для выбора тега table:

1
Element table = document.select("table").first();


Далее, вы можете получить строки таблицы (тег tr) с помощью метода select:

1
Elements rows = table.select("tr");


Наконец, для получения ячеек таблицы (тег td), используйте метод select в цикле for:

1
2
3
4
5
6
for (Element row : rows) {
    Elements cells = row.select("td");
    for (Element cell : cells) {
        System.out.println(cell.text());
    }
}


Это основные шаги для парсинга HTML-таблицы с помощью JSoup. Вы можете модифицировать код в зависимости от ваших требований.

Пользователь

от enid , год назад

@margaret 

Вот пример кода для парсинга HTML-таблицы с помощью JSoup:

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
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) {
        String html = "<table><tr><td>row 1, cell 1</td><td>row 1, cell 2</td></tr><tr><td>row 2, cell 1</td><td>row 2, cell 2</td></tr></table>";
        Document document = Jsoup.parse(html);

        Element table = document.select("table").first();
        Elements rows = table.select("tr");

        for (Element row : rows) {
            Elements cells = row.select("td");
            for (Element cell : cells) {
                System.out.println(cell.text());
            }
        }
    }
}


Результат работы программы:

1
2
3
4
row 1, cell 1
row 1, cell 2
row 2, cell 1
row 2, cell 2


Это простой пример, который выводит содержимое всех ячеек таблицы. Вы можете модифицировать код, чтобы обрабатывать данные таблицы по своему усмотрению.