Jadi kami ingin mendapatkan maklumat khusus daripada tapak tersebut. Mari lihat bagaimana untuk melakukan langkah demi langkah ini. Mula-mula kita perlu mendapatkan
Document
. Ini adalah perwakilan halaman html kami. Jsoup mempunyai beberapa cara untuk mengubah tapak menjadi Document
. Sambung ke pelayan
Document document = Jsoup.connect("https://hh.ru/").get();
Jsoup sendiri menyambung ke tapak. Kaedah ini adalah yang paling mudah, tetapi ia hanya sesuai untuk ujian. Terdapat pelanggan http yang lebih mudah dan fleksibel. Juga perlu diingat, tidak kira apa klien http yang anda gunakan, tambahkan pengepala pada permintaan User-Agent
dengan nilai seperti Chrome/81.0.4044.138
. Menggunakan pengepala ini, pelayan menentukan peranti yang anda sambungkan. Tanpa pengepala ini, pelayan menganggap anda sebagai bot dan mungkin melarang anda. Daripada fail ;
File file = new File("hh-test.html");
Document document = Jsoup.parse(file, "UTF-8", "hh.ru");
Ini adalah cara utama untuk mendapatkan objek Document
. Hujah terakhir "hh.ru"
ialah URI asas. Ini adalah perlu untuk membuat pautan mutlak daripada yang relatif yang terdapat di tapak. Dari barisan
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");
Seterusnya, saya akan menunjukkan perpustakaan dalam html ini, yang mewakili tapak yang dipermudahkan. Mendapatkan tag Tugas utama semasa menghuraikan adalah untuk mendapatkan tag yang dikehendaki. Kami akan melakukan ini menggunakan kaedah select
. Ambil perhatian bahawa ia sentiasa mengembalikan senarai teg. Jika tiada teg ditemui, senarai itu akan kosong. Anda perlu lulus pemilih CSS yang mana teg dicari sebagai hujah kaedah. Saya akan membincangkan pemilih dengan lebih terperinci, kerana semua kerja adalah untuk menulis pemilih yang betul. Biasanya kita perlu mengarangnya supaya ia mengembalikan satu teg.
Elements h1 = document.select("h1");
System.out.println(h1);
Dapatkan teg teg h1
Output:
<h1>Работа найдется для каждого</h1>
Elements titleElem = document.select("head > title");
Dapatkan tag title
. Tanda >
memilih teg title
yang bersarang dalam teghead
Elements divs = document.select("body > div");
Dapatkan teg div
bersarangbody
Elements firstDiv = document.select("body > div:nth-child(1)");
Dapatkan teg pertama div
bersarang dalam body
. Mendapatkan semula teg mengikut nombor siri adalah cara yang tidak baik, kerana kedudukannya di tapak mungkin berubah. Adalah lebih baik untuk menentukan teg menggunakan parameter mutlak. Parameter ini adalah atribut class
danid
Elements contentElem = document.select("body > div.content");
Dapatkan teg div
dengan kelas "kandungan", bersarangbody
Elements idElem = document.select("#123");
Dapatkan teg dengan id "123"
Elements divHeader = document.select("body > div.header.main :not(h1)");
Dapatkan teg div
dengan kelas "header" dan "main", bersarang dalam body
, tetapi tanpa teg h1
. Output:
<div>
Поиск вакансий
</div>
Kaedah Elemen Setelah kami menerima senarai, Elements
kami boleh mengekstrak data daripadanya. Biar saya ingatkan anda bahawa biasanya pemilih mencari satu teg, i.e. mestilah Elements
saiz 1.
elements.size();
bilangan tag yang ditemui
elements.get(0);
dapatkan teg pertama daripada senarai yang ditemui
elements.text();
teks yang dibenamkan dalam teg
elements.attr("href");
nilai atribut "href".
elements.outerHtml();
perwakilan rentetan teg Jika anda perlu mendapatkan pemilih elemen dengan cepat, buka panel pembangun (f12) dalam penyemak imbas, klik kanan pada elemen, "lihat kod", klik kanan pada teg, kemudian "Salin" " Salin pemilih”. Pemilih sedemikian tidak akan optimum, tetapi ia agak sesuai untuk hasil yang cepat. Kesimpulan Ini adalah asas bekerja dengan perpustakaan Jsoup. Tetapi ini sudah cukup untuk menghuraikan tapak. Untuk bekerja dengan yakin, anda hanya perlukan latihan menulis pemilih di tapak sebenar. Ps Perpustakaan ini digunakan untuk menyelesaikan masalah besar pada tahap 38
GO TO FULL VERSION