Jadi kami ingin mendapatkan informasi spesifik dari situs tersebut. Mari kita lihat cara melakukan ini langkah demi langkah. Pertama 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-Agent
dengan 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 title
yang bersarang di dalam taghead
Elements divs = document.select("body > div");
Dapatkan tag div
yang disarangkanbody
Elements firstDiv = document.select("body > div:nth-child(1)");
Dapatkan tag pertama div
yang 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 class
danid
Elements contentElem = document.select("body > div.content");
Dapatkan tag div
dengan 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 div
dengan kelas "header" dan "main", bersarang di body
, tetapi tanpa tag h1
.
<div>
Поиск вакансий
</div>
Metode Elemen Setelah kami menerima daftar, Elements
kami dapat mengekstrak data darinya. Izinkan saya mengingatkan Anda bahwa biasanya pemilih mencari satu tag, mis. harus Elements
ukuran 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
GO TO FULL VERSION