jsoup: Parser HTML untuk Java
Scraping, membersihkan, dan memanipulasi HTML dengan kemudahan seperti jQuery di Java
Apa itu jsoup?
jsoup adalah pustaka Java yang ringan namun kuat, dirancang untuk bekerja dengan HTML dunia nyata. Ini menyediakan API yang mulus untuk mengurai HTML dari URL, file, atau string, mengekstrak dan memanipulasi data menggunakan traversal DOM, selektor CSS, dan metode HTML5 modern. Ideal untuk scraping web, ekstraksi data, dan sanitasi HTML, jsoup menangani markup yang tidak sempurna dengan baik—seperti halnya browser ketika mengurai halaman web.
Berbeda dengan pendekatan regex mentah, jsoup menawarkan model objek yang bersih dengan metode yang terinspirasi oleh jQuery, menyederhanakan tugas seperti pengiriman formulir, modifikasi atribut, dan ekstraksi teks. Tanpa dependensi dan berlisensi MIT, jsoup menjadi favorit pengembang Java yang membutuhkan pengolahan HTML yang andal.
Keunggulan utama jsoup:
- Penanganan HTML dunia nyata: Mengurai HTML berantakan seperti yang dilakukan browser
- Sintaks mirip jQuery: Selektor CSS yang familiar (mis.,
doc.select("div.content")
) - Ramah scraping: Mengikuti pengalihan, menangani cookie, dan mengirim formulir
- Lintas platform: Murni Java tanpa dependensi native
- Keamanan: Pencegahan XSS bawaan dan sanitasi HTML
Sempurna untuk penambangan data, otomatisasi web, dan analisis konten.
Mengapa Memilih jsoup?
- Kesederhanaan: API intuitif dengan dukungan selektor CSS
- Keandalan: Diperbarui aktif sejak 2009
- Kinerja: Dioptimalkan untuk dokumen besar dan streaming
- Fleksibilitas: Bekerja dengan fragmen, file, atau URL langsung
- Output bersih: Mencetak dan memformat ulang HTML dengan rapi
Instalasi
Tambahkan jsoup melalui Maven atau Gradle:
Maven
org.jsoup
jsoup
1.17.2
Gradle
implementation 'org.jsoup:jsoup:1.17.2'
Persyaratan Sistem: Java 8+
Contoh Kode
Kasus penggunaan praktis jsoup:
Contoh 1: Parsing Dokumen dari String
Jika Anda memiliki HTML dalam string Java, dan ingin mengurai HTML untuk mendapatkan isinya atau memodifikasinya, jsoup dapat melakukannya hanya dengan beberapa baris kode.
Metode parse(String html, String baseUri)
mengubah HTML input menjadi Dokumen baru. Parameter baseUri
membantu mengubah URL relatif menjadi absolut dan harus sesuai dengan URL dari mana dokumen diambil. Jika ini tidak relevan, atau jika HTML mengandung elemen <base>
, Anda bisa menggunakan metode parse(String html)
yang lebih sederhana.
Contoh 2: Menggunakan Selektor CSS untuk Menemukan Elemen
Anda ingin menemukan atau memanipulasi elemen menggunakan selektor CSS. Parsing dan manipulasi string HTML langsung:
Contoh 3: Memodifikasi HTML dari Sebuah Elemen
Anda perlu memodifikasi HTML dari sebuah elemen. Gunakan metode setter HTML di Element
seperti yang ditunjukkan dalam kode contoh berikut.
Fitur Lanjutan
jsoup mendukung pengolahan HTML profesional:
- Penanganan formulir: Kirim data POST:
Pengiriman Formulir
Connection.Response res = Jsoup.connect("https://example.com/login") .data("username", "user", "password", "pass") .method(Connection.Method.POST) .execute(); Document dashboard = res.parse();
- Dukungan proxy: Scraping melalui proxy:
Konfigurasi Proxy
Document doc = Jsoup.connect("https://target.com") .proxy("127.0.0.1", 8080) .get();
- Manipulasi DOM: Ubah struktur HTML:
Perubahan DOM
doc.select("div.ads").remove(); // Hapus semua iklan doc.select("h1").attr("class", "header"); // Tambahkan kelas CSS
jsoup vs. HTMLUnit
Perbedaan utama:
- Fokus: jsoup mengurai HTML statis; HTMLUnit mensimulasikan browser (eksekusi JavaScript)
- Kecepatan: jsoup lebih cepat untuk parsing HTML murni
- Gaya API: jsoup menggunakan selektor CSS; HTMLUnit meniru Selenium
- Kasus Penggunaan: jsoup untuk scraping; HTMLUnit untuk pengujian halaman dinamis
- Dependensi: jsoup tidak punya; HTMLUnit membutuhkan pustaka tambahan
Kesimpulan
jsoup adalah toolkit HTML terbaik untuk pengembang Java. Ideal untuk:
- Scraping web: Ekstrak data dari situs web apa pun
- Pembersihan data: Sanitasi dan normalisasi HTML
- Analisis konten: Parsing feed RSS atau arsip web
- Pengujian: Verifikasi struktur HTML dalam aplikasi
Dengan lisensi MIT dan API yang intuitif, jsoup adalah pilihan utama untuk pengolahan HTML berbasis Java.
Produk Sejenis
- Apache POI XWPF | API Java Open Source untuk Membuat & Memodifikasi file DOCX
- DocX | Open Source .NET API untuk Membuat & Memodifikasi file DOCX
- Docx4J | API Java Open Source untuk Membuat & Memodifikasi file DOC dan DOCX
- ExcelDataReader | Open Source .NET API untuk membaca dokumen XLS, XLSX, CSV dan Spreadsheet
- FileFormat.Cells | Mengelompokkan dan Memperbarui file Excel dengan C# .NET