jsoup: Java için HTML Ayrıştırıcı
Java'da jQuery benzeri kolaylıkla HTML kazıyın, temizleyin ve manipüle edin
jsoup nedir?
jsoup, gerçek dünya HTML'iyle çalışmak için tasarlanmış hafif ancak güçlü bir Java kütüphanesidir. URL'lerden, dosyalardan veya dizgilerden HTML ayrıştırma, DOM gezintisi, CSS seçicileri ve modern HTML5 yöntemleri kullanarak veri çıkarma ve manipülasyon için sorunsuz bir API sağlar. Web kazıma, veri çıkarma ve HTML temizleme için ideal olan jsoup, tarayıcılar gibi hatalı biçimlendirmeyle başa çıkabilir.
Ham regex yaklaşımlarının aksine, jsoup jQuery'den ilham alan yöntemlerle temiz bir nesne modeli sunarak form gönderme, nitelik değiştirme ve metin çıkarma gibi görevleri basitleştirir. Bağımlılık olmadan ve MIT lisansıyla, güvenilir HTML işleme ihtiyacı olan Java geliştiricilerinin favorisidir.
jsoup'un temel avantajları:
- Gerçek dünya HTML işleme: Dağınık HTML'i tarayıcılar gibi ayrıştırır
- jQuery benzeri sözdizimi: Bilinen CSS seçicileri (örn.
doc.select("div.content")
) - Kazıma dostu: Yönlendirmeleri takip eder, çerezleri yönetir ve formları gönderir
- Platformlar arası: Yerel bağımlılık olmadan saf Java
- Güvenlik: Dahili XSS önleme ve HTML temizleme
Veri madenciliği, web otomasyonu ve içerik analizi için mükemmeldir.
Neden jsoup'u seçmelisiniz?
- Basitlik: CSS seçici desteğiyle sezgisel API
- Güvenilirlik: 2009'dan beri aktif olarak sürdürülüyor
- Performans: Akış ve büyük belgeler için optimize edilmiştir
- Esneklik: Parçalarla, dosyalarla veya canlı URL'lerle çalışır
- Temiz çıktı: HTML'i güzelce yazdırır ve yeniden biçimlendirir
Kurulum
jsoup'u Maven veya Gradle ile ekleyin:
Maven
org.jsoup
jsoup
1.17.2
Gradle
implementation 'org.jsoup:jsoup:1.17.2'
Sistem gereksinimleri: Java 8+
Kod Örnekleri
jsoup'un pratik kullanım örnekleri:
Örnek 1: Bir Dizeden Belge Ayrıştırma
Java dizesinde HTML varsa ve içeriğini almak veya değiştirmek için ayrıştırmak istiyorsanız, jsoup bunu birkaç satır kodla yapabilir.
parse(String html, String baseUri)
yöntemi, giriş HTML'ini yeni bir Belge'ye dönüştürür. baseUri
parametresi, göreli URL'leri mutlak URL'lere çözümlemeye yardımcı olur ve belgenin alındığı URL ile eşleşmelidir. Bu ilgili değilse veya HTML bir <base>
öğesi içeriyorsa, daha basit olan parse(String html)
yöntemini kullanabilirsiniz.
Örnek 2: Öğeleri Bulmak için CSS Seçicileri Kullanma
CSS seçicileri kullanarak öğeleri bulmak veya manipüle etmek istiyorsunuz. Bir HTML dizesini doğrudan ayrıştırın ve manipüle edin:
Örnek 3: Bir Öğenin HTML'ini Değiştirme
Bir öğenin HTML'ini değiştirmeniz gerekiyor. Aşağıdaki örnek kodda gösterildiği gibi, Element'teki HTML setter yöntemlerini kullanın.
Gelişmiş Özellikler
jsoup profesyonel HTML işlemeyi destekler:
- Form işleme: POST verisi gönderin:
Form Gönderme
Connection.Response res = Jsoup.connect("https://example.com/login") .data("username", "user", "password", "pass") .method(Connection.Method.POST) .execute(); Document dashboard = res.parse();
- Proxy desteği: Proxy üzerinden kazıyın:
Proxy Yapılandırması
Document doc = Jsoup.connect("https://target.com") .proxy("127.0.0.1", 8080) .get();
- DOM manipülasyonu: HTML yapısını değiştirin:
DOM Değişiklikleri
doc.select("div.ads").remove(); // Tüm reklamları kaldır doc.select("h1").attr("class", "header"); // CSS sınıfı ekle
jsoup vs HTMLUnit
Temel farklar:
- Odak: jsoup statik HTML ayrıştırır; HTMLUnit tarayıcıları simüle eder (JavaScript çalıştırır)
- Hız: jsoup saf HTML ayrıştırma için daha hızlıdır
- API stili: jsoup CSS seçicileri kullanır; HTMLUnit Selenium'u taklit eder
- Kullanım durumları: jsoup kazıma için; HTMLUnit dinamik sayfa testi için
- Bağımlılıklar: jsoup'un yoktur; HTMLUnit ek kütüphaneler gerektirir
Sonuç
jsoup, Java geliştiricileri için nihai HTML araç setidir. Şunlar için idealdir:
- Web kazıma: Herhangi bir web sitesinden veri çıkarın
- Veri temizleme: HTML'i temizleyin ve normalleştirin
- İçerik analizi: RSS beslemelerini veya web arşivlerini ayrıştırın
- Test: Uygulamalarda HTML yapısını doğrulayın
MIT lisansı ve sezgisel API ile jsoup, Java tabanlı HTML işleme için en iyi seçimdir.
Benzer Ürünler
- Apache POI XWPF | DOCX dosyalarını oluşturmak ve değiştirmek için Açık Kaynaklı Java API
- DocX | DOCX dosyalarını oluşturmak ve değiştirmek için Açık Kaynaklı .NET API
- Docx4J | DOC ve DOCX dosyalarını oluşturmak ve değiştirmek için Açık Kaynaklı Java API
- ExcelDataReader | XLS, XLSX, CSV ve E-Tablo belgelerini okumak için Açık Kaynaklı .NET API
- FileFormat.Cells | Excel dosyalarını C# .NET ile oluşturun ve güncelleyin