jsoup: De Java HTML-parser
Scrape, reinig en manipuleer HTML met jQuery-achtige eenvoud in Java
Wat is jsoup?
jsoup is een lichtgewicht maar krachtige Java-bibliotheek ontworpen voor het werken met real-world HTML. Het biedt een soepele API voor het parsen van HTML van URL's, bestanden of strings, het extraheren en manipuleren van data met DOM-traversal, CSS-selectors en moderne HTML5-methoden. Ideaal voor webscraping, data-extractie en HTML-sanitizing, jsoup gaat net als een browser om met slecht gevormde markup.
In tegenstelling tot raw regex-benaderingen biedt jsoup een schoon objectmodel met jQuery-geïnspireerde methoden, wat taken zoals formulierinzending, attribuutmodificatie en teksextractie vereenvoudigt. Zonder afhankelijkheden en met MIT-licentie is het een favoriet onder Java-ontwikkelaars die betrouwbare HTML-verwerking nodig hebben.
Belangrijkste voordelen van jsoup:
- Real-world HTML-verwerking: Parseert rommelige HTML zoals browsers doen
- jQuery-achtige syntax: Bekende CSS-selectors (bijv.
doc.select("div.content")
) - Scraping-vriendelijk: Volgt redirects, handelt cookies af en dient formulieren in
- Cross-platform: Pure Java zonder native afhankelijkheden
- Beveiliging: Ingebouwde XSS-preventie en HTML-sanitizing
Perfect voor datamining, webautomation en contentanalyse.
Waarom jsoup kiezen?
- Eenvoud: Intuïtieve API met CSS-selector-ondersteuning
- Betrouwbaarheid: Actief onderhouden sinds 2009
- Prestaties: Geoptimaliseerd voor streaming en grote documenten
- Flexibiliteit: Werkt met fragmenten, bestanden of live URL's
- Schone output: Mooi afgedrukte en hervormatte HTML
Installatie
Voeg jsoup toe via Maven of Gradle:
Maven
org.jsoup
jsoup
1.17.2
Gradle
implementation 'org.jsoup:jsoup:1.17.2'
Systeemvereisten: Java 8+
Codevoorbeelden
Praktische use cases voor jsoup:
Voorbeeld 1: Een document parsen vanuit een string
Als je HTML in een Java-string hebt en je wilt de HTML parsen om de inhoud te krijgen of te wijzigen, kan jsoup dit met slechts een paar regels code.
De methode parse(String html, String baseUri)
converteert de input-HTML naar een nieuw Document. De baseUri
parameter helpt relatieve URL's om te zetten naar absolute URL's en zou moeten overeenkomen met de URL waar het document vandaan kwam. Als dit niet relevant is, of als de HTML een <base>
element bevat, kun je de eenvoudigere methode parse(String html)
gebruiken.
Voorbeeld 2: CSS-selectors gebruiken om elementen te vinden
Je wilt elementen vinden of manipuleren met CSS-selectors. Parseer en manipuleer een HTML-string direct:
Voorbeeld 3: De HTML van een element wijzigen
Je moet de HTML van een element wijzigen. Gebruik de HTML-settermethoden in Element zoals getoond in de volgende voorbeeldcode.
Geavanceerde functies
jsoup ondersteunt professionele HTML-verwerking:
- Formulierafhandeling: POST-data verzenden:
Formulierinzending
Connection.Response res = Jsoup.connect("https://example.com/login") .data("username", "user", "password", "pass") .method(Connection.Method.POST) .execute(); Document dashboard = res.parse();
- Proxy-ondersteuning: Scrapen via proxy:
Proxyconfiguratie
Document doc = Jsoup.connect("https://target.com") .proxy("127.0.0.1", 8080) .get();
- DOM-manipulatie: HTML-structuur wijzigen:
DOM-wijzigingen
doc.select("div.ads").remove(); // Verwijder alle advertenties doc.select("h1").attr("class", "header"); // Voeg CSS-klasse toe
jsoup vs. HTMLUnit
Belangrijkste verschillen:
- Focus: jsoup parseert statische HTML; HTMLUnit simuleert browsers (JavaScript-uitvoering)
- Snelheid: jsoup is sneller voor pure HTML-parsing
- API-stijl: jsoup gebruikt CSS-selectors; HTMLUnit bootst Selenium na
- Use cases: jsoup voor scraping; HTMLUnit voor het testen van dynamische pagina's
- Afhankelijkheden: jsoup heeft geen; HTMLUnit vereist extra bibliotheken
Conclusie
jsoup is het ultieme HTML-toolkit voor Java-ontwikkelaars. Ideaal voor:
- Webscraping: Data extraheren van elke website
- Datacleaning: HTML sanitiseren en normaliseren
- Contentanalyse: RSS-feeds of webarchieven parsen
- Testen: HTML-structuur verifiëren in apps
Met MIT-licentie en intuïtieve API is jsoup de topkeuze voor Java-gebaseerde HTML-verwerking.
Vergelijkbare Producten
- Apache POI XWPF | Open Source Java API om DOCX-bestanden te maken en te wijzigen
- DocX | Open Source .NET API om DOCX-bestanden te maken en te wijzigen
- Docx4J | Open Source Java API om DOC- en DOCX-bestanden te maken en te wijzigen
- ExcelDataReader | Open Source .NET API om XLS-, XLSX-, CSV- en spreadsheetdocumenten te lezen
- FileFormat.Cells | Excel-bestanden certificeren en bijwerken met C# .NET