jsoup: Pengecam HTML untuk Java
Mengikis, membersih dan memanipulasi HTML dengan kemudahan seperti jQuery dalam Java
Apa itu jsoup?
jsoup adalah pustaka Java yang ringan tetapi berkuasa direka untuk bekerja dengan HTML dunia sebenar. Ia menyediakan API yang lancar untuk mengecam HTML dari URL, fail atau rentetan, mengekstrak dan memanipulasi data menggunakan penerokaan DOM, pemilih CSS dan kaedah HTML5 moden. Sesuai untuk pengikisan web, pengekstrakan data dan penyucian HTML, jsoup mengendalikan markup yang cacat dengan baik - sama seperti pelayar web.
Berbeza dengan pendekatan regex asas, jsoup menawarkan model objek yang bersih dengan kaedah terinspirasi jQuery, memudahkan tugas seperti penghantaran borang, pengubahsuaian atribut dan pengekstrakan teks. Tanpa kebergantungan dan dengan lesen MIT, ia menjadi pilihan utama pembangun Java yang memerlukan pemprosesan HTML yang boleh dipercayai.
Kelebihan utama jsoup:
- Pengendalian HTML dunia sebenar: Mengecam HTML yang tidak teratur seperti pelayar
- Sintaks seperti jQuery: Pemilih CSS yang biasa (cth.
doc.select("div.content")
) - Mesra pengikisan: Mengikuti lencongan, mengendalikan kuki, menghantar borang
- Pelbagai platform: Java tulen tanpa kebergantungan asli
- Keselamatan: Pencegahan XSS terbina dalam dan penyucian HTML
Sesuai untuk perlombongan data, automasi web dan analisis kandungan.
Mengapa Pilih jsoup?
- Kesederhanaan: API intuitif dengan sokongan pemilih CSS
- Kebolehpercayaan: Dikekalkan secara aktif sejak 2009
- Prestasi: Dioptimumkan untuk strim dan dokumen besar
- Fleksibiliti: Berfungsi dengan serpihan, fail atau URL langsung
- Output bersih: Mencetak dan memformat semula HTML dengan kemas
Pemasangan
Tambahkan jsoup melalui Maven atau Gradle:
Maven
org.jsoup
jsoup
1.17.2
Gradle
implementation 'org.jsoup:jsoup:1.17.2'
Keperluan Sistem: Java 8+
Contoh Kod
Contoh penggunaan praktikal jsoup:
Contoh 1: Mengecam Dokumen dari Rentetan
Jika anda mempunyai HTML dalam rentetan Java, dan ingin mengecam HTML untuk mendapatkan kandungannya atau mengubahnya, jsoup boleh melakukannya dengan hanya beberapa baris kod.
Kaedah parse(String html, String baseUri)
menukar input HTML kepada Dokumen baru. Parameter baseUri
membantu menyelesaikan URL relatif kepada mutlak dan sepatutnya sepadan dengan URL di mana dokumen diperoleh. Jika ini tidak relevan atau jika HTML mengandungi elemen <base>
, anda boleh menggunakan kaedah lebih mudah parse(String html)
.
Contoh 2: Menggunakan Pemilih CSS untuk Mencari Elemen
Anda ingin mencari atau memanipulasi elemen menggunakan pemilih CSS. Mengecam dan memanipulasi rentetan HTML secara langsung:
Contoh 3: Mengubahsuai HTML Elemen
Anda perlu mengubahsuai HTML elemen. Gunakan kaedah setter HTML dalam Elemen seperti yang ditunjukkan dalam contoh kod berikut.
Ciri Lanjutan
jsoup menyokong pemprosesan HTML profesional:
- Pengendalian borang: Menghantar data POST:
Penghantaran Borang
Connection.Response res = Jsoup.connect("https://example.com/login") .data("username", "user", "password", "pass") .method(Connection.Method.POST) .execute(); Document dashboard = res.parse();
- Sokongan proksi: Mengikis melalui proksi:
Konfigurasi Proksi
Document doc = Jsoup.connect("https://target.com") .proxy("127.0.0.1", 8080) .get();
- Pengubahsuaian DOM: Mengubah struktur HTML:
Perubahan DOM
doc.select("div.ads").remove(); // Buang semua iklan doc.select("h1").attr("class", "header"); // Tambah kelas CSS
jsoup vs HTMLUnit
Perbezaan utama:
- Fokus: jsoup mengecam HTML statik; HTMLUnit mensimulasikan pelayar (melaksanakan JavaScript)
- Kelajuan: jsoup lebih pantas untuk pengecaman HTML tulen
- Gaya API: jsoup menggunakan pemilih CSS; HTMLUnit meniru Selenium
- Kes penggunaan: jsoup untuk pengikisan; HTMLUnit untuk menguji halaman dinamik
- Kebergantungan: jsoup tiada; HTMLUnit memerlukan pustaka tambahan
Kesimpulan
jsoup adalah toolkit HTML muktamad untuk pembangun Java. Sesuai untuk:
- Pengikisan web: Mengekstrak data dari mana-mana laman web
- Pembersihan data: Menyucikan dan menormalisasi HTML
- Analisis kandungan: Mengecam suapan RSS atau arkib web
- Pengujian: Mengesahkan struktur HTML dalam apl
Dengan lesen MIT dan API yang intuitif, jsoup adalah pilihan utama untuk pemprosesan HTML berasaskan Java.
Produk Serupa
- Apache POI XWPF | Open Source Java API untuk Mencipta & Mengubah suai fail DOCX
- DocX | Open Source .NET API untuk Mencipta & Mengubah suai fail DOCX
- Docx4J | Open Source Java API untuk Mencipta & Mengubah suai fail DOC dan DOCX
- ExcelDataReader | Open Source .NET API untuk membaca dokumen XLS, XLSX, CSV dan Spreadsheet
- FileFormat.Cells | Cerate dan Kemas kini fail Excel dengan C# .NET