jsoup: Parser HTML dla Java

Pobieraj, czyść i manipuluj HTML z łatwością jQuery w Javie

Czym jest jsoup?

jsoup to lekka, ale potężna biblioteka Java zaprojektowana do pracy z rzeczywistym HTML. Zapewnia płynne API do parsowania HTML z URL, plików lub ciągów znaków, wydobywania i manipulowania danymi przy użyciu przeglądania DOM, selektorów CSS i nowoczesnych metod HTML5. Idealna do web scrapingu, ekstrakcji danych i oczyszczania HTML, jsoup radzi sobie z niepoprawnym znacznikiem HTML - dokładnie tak jak przeglądarka.

W przeciwieństwie do surowych rozwiązań regex, jsoup oferuje czysty model obiektowy z metodami inspirowanymi jQuery, upraszczającymi zadania takie jak przesyłanie formularzy, modyfikacja atrybutów i ekstrakcja tekstu. Bez zależności i z licencją MIT, to ulubiona biblioteka programistów Java potrzebujących niezawodnego przetwarzania HTML.

Kluczowe zalety jsoup:

  • Przetwarzanie rzeczywistego HTML: Parsuje chaotyczny HTML tak jak przeglądarka
  • Składnia w stylu jQuery: Znane selektory CSS (np. doc.select("div.content"))
  • Przyjazny dla scrapingu: Obsługuje przekierowania, ciasteczka i przesyłanie formularzy
  • Wieloplatformowy: Czysta Java bez zależności natywnych
  • Bezpieczeństwo: Wbudowana ochrona przed XSS i oczyszczanie HTML

Idealny do eksploracji danych, automatyzacji stron web i analizy treści.

GitHub

Statystyki GitHuba

Nazwa:
Język:
Gwiazdy:
Widły:
Licencja:
Repozytorium zostało ostatnio zaktualizowane o godzinie

Dlaczego wybrać jsoup?

  • Prostota: Intuicyjne API z obsługą selektorów CSS
  • Niezawodność: Aktywnie rozwijany od 2009 roku
  • Wydajność: Zoptymalizowany dla strumieniowania i dużych dokumentów
  • Elastyczność: Działa z fragmentami, plikami lub bezpośrednimi URL
  • Czyste wyjście: Ładnie formatuje i przekształca HTML

Instalacja

Dodaj jsoup przez Maven lub Gradle:

Maven



    org.jsoup
    jsoup
    1.17.2


Gradle


implementation 'org.jsoup:jsoup:1.17.2'

Wymagania systemowe: Java 8+

Przykłady kodu

Praktyczne zastosowania jsoup:

Parsowanie HTML z jsoup

Przykład 1: Parsowanie dokumentu z ciągu znaków

Jeśli masz HTML w ciągu znaków Java i chcesz go sparsować, aby uzyskać jego zawartość lub zmodyfikować, jsoup może to zrobić w zaledwie kilku linijkach kodu.

Metoda parse(String html, String baseUri) konwertuje wejściowy HTML na nowy Dokument. Parametr baseUri pomaga rozwiązać względne URL do bezwzględnych i powinien odpowiadać URL, z którego dokument został pobrany. Jeśli nie jest to istotne lub jeśli HTML zawiera element <base>, możesz użyć prostszej metody parse(String html).

Przykład 2: Użycie selektorów CSS do znajdowania elementów

Chcesz znaleźć lub manipulować elementami używając selektorów CSS. Sparsuj i zmodyfikuj ciąg HTML bezpośrednio:

Przykład 3: Modyfikacja HTML elementu

Musisz zmodyfikować HTML elementu. Użyj metod setter HTML w Element jak pokazano w poniższym przykładzie kodu.

Zaawansowane funkcje

jsoup obsługuje profesjonalne przetwarzanie HTML:

  • Obsługa formularzy: Wyślij dane POST:

    Przesyłanie formularza

    
        Connection.Response res = Jsoup.connect("https://example.com/login")
            .data("username", "user", "password", "pass")
            .method(Connection.Method.POST)
            .execute();
        Document dashboard = res.parse();
        
    
  • Obsługa proxy: Scrapuj przez proxy:

    Konfiguracja proxy

    
        Document doc = Jsoup.connect("https://target.com")
            .proxy("127.0.0.1", 8080)
            .get();
        
    
  • Manipulacja DOM: Zmień strukturę HTML:

    Zmiany DOM

    
        doc.select("div.ads").remove(); // Usuń wszystkie reklamy
        doc.select("h1").attr("class", "header"); // Dodaj klasę CSS
        
    

jsoup vs HTMLUnit

Kluczowe różnice:

  • Fokus: jsoup parsuje statyczny HTML; HTMLUnit symuluje przeglądarki (wykonuje JavaScript)
  • Prędkość: jsoup jest szybszy do czystego parsowania HTML
  • Styl API: jsoup używa selektorów CSS; HTMLUnit naśladuje Selenium
  • Przypadki użycia: jsoup do scrapingu; HTMLUnit do testowania dynamicznych stron
  • Zależności: jsoup nie ma; HTMLUnit wymaga dodatkowych bibliotek

Podsumowanie

jsoup to ostateczny zestaw narzędzi HTML dla programistów Java. Idealny dla:

  • Web scrapingu: Wydobywaj dane z dowolnej strony internetowej
  • Czyszczenia danych: Oczyszczaj i normalizuj HTML
  • Analizy treści: Parsuj kanały RSS lub archiwa stron
  • Testów: Weryfikuj strukturę HTML w aplikacjach

Z licencją MIT i intuicyjnym API, jsoup to najlepszy wybór dla przetwarzania HTML w Javie.

Podobne Produkty

 Polish