jsoup: Java HTML-parseren
Skrap, rens og manipuler HTML med jQuery-lik enkelhet i Java
Hva er jsoup?
jsoup er et lettvektig men kraftig Java-bibliotek designet for arbeid med ekte HTML. Det gir et sømløst API for parsing av HTML fra URL-er, filer eller strenger, ekstrahering og manipulasjon av data ved hjelp av DOM-traversering, CSS-selektorer og moderne HTML5-metoder. Ideell for web-skraping, datautvinning og HTML-sanitering, håndterer jsoup feilformatert markup på samme måte som en nettleser.
I motsetning til rå regex-tilnærminger, tilbyr jsoup en ren objektmodell med jQuery-inspirerte metoder, som forenkler oppgaver som skjemainnsending, attributtmodifikasjon og tekstutvinning. Uten avhengigheter og med MIT-lisens er det en favoritt blant Java-utviklere som trenger pålitelig HTML-behandling.
Viktigste fordeler med jsoup:
- Ekte HTML-behandling: Parser rotete HTML slik nettlesere gjør
- jQuery-lik syntaks: Kjente CSS-selektorer (f.eks.
doc.select("div.content")
) - Skrapingvennlig: Følger omdirigeringer, håndterer informasjonskapsler og sender skjemaer
- Tverrplattform: Ren Java uten native avhengigheter
- Sikkerhet: Innebygd XSS-prevensjon og HTML-sanitering
Perfekt for datamining, webautomasjon og innholdsanalyse.
Hvorfor velge jsoup?
- Enkelhet: Intuitivt API med CSS-selektorstøtte
- Pålitelighet: Aktivt vedlikeholdt siden 2009
- Ytelse: Optimalisert for strømming og store dokumenter
- Fleksibilitet: Fungerer med fragmenter, filer eller live URL-er
- Ren output: Pen utskrift og reformatering av HTML
Installasjon
Legg til jsoup via Maven eller Gradle:
Maven
org.jsoup
jsoup
1.17.2
Gradle
implementation 'org.jsoup:jsoup:1.17.2'
Systemkrav: Java 8+
Kodeeksempler
Praktiske brukstilfeller for jsoup:
Eksempel 1: Parse et dokument fra en streng
Hvis du har HTML i en Java-streng og ønsker å parse HTML-en for å få innholdet eller endre det, kan jsoup gjøre dette med bare noen få kodelinjer.
Metoden parse(String html, String baseUri)
konverterer inndata-HTML til et nytt dokument. baseUri
-parameteren hjelper til med å løse relative URL-er til absolutte URL-er og bør tilsvare URL-en dokumentet ble hentet fra. Hvis dette ikke er relevant, eller hvis HTML-en inneholder et <base>
-element, kan du bruke den enklere metoden parse(String html)
i stedet.
Eksempel 2: Bruk CSS-selektorer til å finne elementer
Du ønsker å finne eller manipulere elementer ved hjelp av CSS-selektorer. Parse og manipuler en HTML-streng direkte:
Eksempel 3: Endre HTML-en til et element
Du må endre HTML-en til et element. Bruk HTML-settermetodene i Element som vist i følgende kodeeksempel.
Avanserte funksjoner
jsoup støtter profesjonell HTML-behandling:
- Skjemahåndtering: Send POST-data:
Skjemainnsending
Connection.Response res = Jsoup.connect("https://example.com/login") .data("username", "user", "password", "pass") .method(Connection.Method.POST) .execute(); Document dashboard = res.parse();
- Proxy-støtte: Skrap gjennom proxy:
Proxykonfigurasjon
Document doc = Jsoup.connect("https://target.com") .proxy("127.0.0.1", 8080) .get();
- DOM-manipulasjon: Endre HTML-struktur:
DOM-endringer
doc.select("div.ads").remove(); // Fjern alle annonser doc.select("h1").attr("class", "header"); // Legg til CSS-klasse
jsoup vs. HTMLUnit
Viktigste forskjeller:
- Fokus: jsoup parser statisk HTML; HTMLUnit simulerer nettlesere (JavaScript-kjøring)
- Hastighet: jsoup er raskere for ren HTML-parsing
- API-stil: jsoup bruker CSS-selektorer; HTMLUnit etterligner Selenium
- Brukstilfeller: jsoup for skraping; HTMLUnit for testing av dynamiske sider
- Avhengigheter: jsoup har ingen; HTMLUnit krever ekstra biblioteker
Konklusjon
jsoup er det ultimate HTML-verktøysettet for Java-utviklere. Ideell for:
- Web-skraping: Ekstrahere data fra hvilken som helst nettside
- Datarensing: Sanitere og normalisere HTML
- Innholdsanalyse: Parse RSS-feeder eller webarkiv
- Testing: Verifisere HTML-struktur i apper
Med MIT-lisens og intuitivt API er jsoup toppvalget for Java-basert HTML-behandling.
Lignende Produkter
- Apache POI XWPF | Open Source Java API for å lage og endre DOCX-filer
- DocX | Open Source .NET API for å opprette og endre DOCX-filer
- Docx4J | Open Source Java API for å opprette og endre DOC- og DOCX-filer
- ExcelDataReader | Open Source .NET API for å lese XLS-, XLSX-, CSV- og regnearkdokumenter
- FileFormat.Cells | Serater og oppdater Excel-filer med C# .NET