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.
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:
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
- Apache POI XWPF | Open Source Java API do tworzenia i modyfikowania plików DOCX
- API FileFormat.Words | Otwarte źródło .NET API dla formatów plików Microsoft Word
- DocX | Otwarte źródło .NET API do tworzenia i modyfikowania plików DOCX
- Docx4J | Otwarte źródło API Java do tworzenia i modyfikowania plików DOC i DOCX
- ExcelDataReader | Otwarte źródło interfejsu API .NET do odczytu dokumentów XLS, XLSX, CSV i arkuszy kalkulacyjnych