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.

GitHub

GitHub İstatistikleri

İsim:
Dil:
Yıldızlar:
Çatallar:
Lisans:
Depo en son şu tarihte güncellendi:

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:

jsoup ile HTML ayrıştırma

Ö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

 Türkçe