Выберите конкретную таблицу HTML с помощью JSOUP - PullRequest
0 голосов
/ 11 октября 2018

У меня есть код:

public static void main(String[] args) throws IOException {

    org.jsoup.nodes.Document doc = Jsoup.connect("https://ms.wikipedia.org/wiki/Malaysia").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();
    }

}

Это распечатывает все строки таблицы, которые есть на веб-странице, возможно ли, если я просто хочу распечатать выбранную таблицу на веб-сайте?

Ответы [ 2 ]

0 голосов
/ 11 октября 2018

Лучший способ сделать это - взять таблицу за заголовок.Поскольку заголовок встроен в элемент кузена таблицы, а CSS не имеет родительского селектора, вы можете использовать комбинацию вызовов API и вызовов Jsoup для этого.

public static void main(String[] args) throws IOException {

    org.jsoup.nodes.Document doc = Jsoup.connect("https://ms.wikipedia.org/wiki/Malaysia").get();
    org.jsoup.nodes.Element table = doc.select("span#Trivia").parents().first().nextElementSibling();
    org.jsoup.select.Elements rows = table.select("tr");
    for (org.jsoup.nodes.Element row : rows) {
        System.out.println(row.select("th").text());
        System.out.println(row.select("td").text());
        System.out.println();
    }
}
0 голосов
/ 11 октября 2018

Попробуйте сначала выбрать конкретный элемент таблицы, а затем зациклить его вложенные элементы.

public static void main(String[] args) throws IOException {
    Document doc = Jsoup.connect("https://ms.wikipedia.org/wiki/Malaysia").get();
    Element table = doc.select("table.wikitable").get(1);
    Elements body = table.select("tbody");
    Elements rows = body.select("tr");
    for (Element row : rows) {
        System.out.print(row.select("th").text());
        System.out.print(row.select("td").text());
        System.out.println();
    }
}

Вывод:

Ibu negaraKuala Lumpur
Pusat pentadbiranPutrajaya
Tarikh Hari Kebangsaan31 Ogos 1957
Cogan Kata NegaraBersekutu Bertambah Mutu
BenuaAsia, Asia Tenggara
Koordinat Geografi2 30 U, 112 30 T
Jumlah hujan tahunan2000mm ~ 2500mm
IklimTropika dengan suhu 24–35 Darjah Celsius
Bunga kebangsaanBunga Raya
Binatang rasmiHarimau
Puncak tertinggiGunung Kinabalu, Banjaran Crocker (4175m)
Puncak tertinggi SemenanjungGunung Tahan, Banjaran Tahan (2187 m)
Banjaran terpanjangBanjaran Titiwangsa (500 km)
Sungai terpanjangSungai Rajang, Sarawak (563 km)
Sungai terpanjang di SemenanjungSungai Pahang (475 km)
Jambatan terpanjangJambatan Pulau Pinang (13.5 km)
Gua terbesarGua Niah, Sarawak
Bangunan tertinggiMenara Berkembar Petronas (452m)
Negeri terbesarSarawak (124,450 km persegi)
Negeri terkecilPerlis (810 km persegi)
Tempat paling lembapBukit Larut (lebih 5080 mm)
Tempat paling keringJelebu (kurang daripada 1500 mm)
Kawasan paling padatKuala Lumpur (6074/km², 15,543/batu persegi)
Penanaman eksport utamaKelapa sawit dan getah

Читать больше документации здесь о JSOUP.

...