JavaRush /Java Blog /Random-ID /Mengurai html dengan perpustakaan jsoup
Сергей
Level 40
Москва

Mengurai html dengan perpustakaan jsoup

Dipublikasikan di grup Random-ID
Jadi kami ingin mendapatkan informasi spesifik dari situs tersebut. Mari kita lihat cara melakukan ini langkah demi langkah. Mengurai html dengan perpustakaan jsoup - 1Pertama kita perlu mendapatkan file Document. Ini adalah representasi dari halaman html kami. Jsoup memiliki beberapa cara untuk mengubah situs menjadi Document. Sambungkan ke server
Document document = Jsoup.connect("https://hh.ru/").get();
Jsoup sendiri terhubung ke situs. Metode ini adalah yang paling sederhana, namun hanya cocok untuk pengujian. Ada klien http yang lebih nyaman dan fleksibel. Ingat juga, apa pun klien http yang Anda gunakan, tambahkan header ke permintaan User-Agentdengan nilai seperti Chrome/81.0.4044.138. Dengan menggunakan header ini, server menentukan perangkat mana yang Anda sambungkan. Tanpa header ini, server menganggap Anda bot dan mungkin melarang Anda. Dari berkas ;
File file = new File("hh-test.html");
Document document = Jsoup.parse(file, "UTF-8", "hh.ru");
Ini adalah cara utama untuk mendapatkan suatu objek Document. Argumen terakhir "hh.ru"adalah URI dasar. Hal ini diperlukan untuk membuat tautan absolut dari tautan relatif yang ada di situs. Dari garis
String html =
                "<html>                                                                       " +
                "    <head>                                                                   " +
                "        <title href=\"hh.ru/vacancy?home\">                                  " +
                "            Работа в Москве, поиск персонала и публикация вакансий - hh.ru   " +
                "        </title>                                                             " +
                "    </head>                                                                  " +
                "    <body>                                                                   " +
                "        <div class=\"header main\">                                          " +
                "            <h1>Работа найдется для каждого</h1>                             " +
                "            <div>Поиск вакансий</div>                                        " +
                "        </div>                                                               " +
                "        <div class=\"content\">                                              " +
                "            <div>Вакансии дня</div>                                          " +
                "            <div id=\"123\">Компании дня</div>                               " +
                "            <div>Работа из дома</div>                                        " +
                "        </div>                                                               " +
                "    </body>                                                                  " +
                "</html>                                                                      ";

        Document document = Jsoup.parse(html, "hh.ru");
Selanjutnya, saya akan mendemonstrasikan perpustakaan dalam html ini, yang mewakili situs yang disederhanakan. Mendapatkan tag Tugas utama saat parsing adalah mendapatkan tag yang diinginkan. Kami akan melakukan ini menggunakan metode ini select. Perhatikan bahwa ini selalu mengembalikan daftar tag. Jika tidak ada tag yang ditemukan, daftarnya akan kosong. Anda harus meneruskan pemilih CSS yang digunakan untuk mencari tag sebagai argumen metode. Saya akan membahas penyeleksi secara lebih rinci, karena seluruh pekerjaan bergantung pada penulisan penyeleksi yang benar. Biasanya kita perlu menyusunnya agar menghasilkan satu tag.
Elements h1 = document.select("h1");
System.out.println(h1);
Dapatkan tag tag h1 Keluaran:

<h1>Работа найдется для каждого</h1>
Elements titleElem = document.select("head > title");
Dapatkan tag title. Tanda >memilih tag titleyang bersarang di dalam taghead
Elements divs = document.select("body > div");
Dapatkan tag divyang disarangkanbody
Elements firstDiv = document.select("body > div:nth-child(1)");
Dapatkan tag pertama divyang bersarang di body. Mengambil tag berdasarkan nomor seri adalah cara yang buruk, karena posisinya di situs dapat berubah. Lebih baik mendefinisikan tag menggunakan parameter absolut. Parameter tersebut adalah atribut classdanid
Elements contentElem = document.select("body > div.content");
Dapatkan tag divdengan kelas "konten", yang disarangkanbody
Elements idElem = document.select("#123");
Dapatkan tag dengan id "123"
Elements divHeader = document.select("body > div.header.main :not(h1)");
Dapatkan tag divdengan kelas "header" dan "main", bersarang di body, tetapi tanpa tag h1 .

<div>
 Поиск вакансий
</div>
Metode Elemen Setelah kami menerima daftar, Elementskami dapat mengekstrak data darinya. Izinkan saya mengingatkan Anda bahwa biasanya pemilih mencari satu tag, mis. harus Elementsukuran 1.
elements.size();
jumlah tag yang ditemukan
elements.get(0);
dapatkan tag pertama dari daftar yang ditemukan
elements.text();
teks tertanam dalam tag
elements.attr("href");
nilai atribut "href".
elements.outerHtml();
representasi string dari sebuah tag Jika Anda perlu mendapatkan pemilih elemen dengan cepat, buka panel pengembang (f12) di browser, klik kanan pada elemen, “lihat kode”, klik kanan pada tag, lalu “Salin” “ Salin pemilih”. Pemilih seperti itu tidak akan optimal, namun cukup cocok untuk hasil yang cepat. Kesimpulan Ini adalah dasar-dasar bekerja dengan perpustakaan Jsoup. Tapi ini cukup untuk mengurai situs. Untuk bekerja dengan percaya diri, yang Anda perlukan hanyalah berlatih menulis penyeleksi di situs nyata. Ps Library ini digunakan untuk menyelesaikan masalah besar di level 38 Mengurai html dengan perpustakaan jsoup - 1Mengurai html dengan perpustakaan jsoup - 3
Komentar
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION