jsoup: Java HTML-parseren
Skrab, ren og manipuler HTML med jQuery-lignende enkelhed i Java
Hvad er jsoup?
jsoup er et letvægts men kraftfuldt Java-bibliotek designet til arbejde med real-world HTML. Det tilbyder et intuitivt API til at parse HTML fra URL'er, filer eller strenge, ekstrahere og manipulere data ved hjælp af DOM-gennemløb, CSS-selectorer og moderne HTML5-metoder. Ideel til web scraping, dataekstraktion og HTML-sanering, håndterer jsoup fejlformateret markup elegant - ligesom en browser ville gøre.
I modsætning til regex-tilgange tilbyder jsoup en ren objektmodel med metoder inspireret af jQuery, der forenkler opgaver som formularindsendelse, attributændring og tekstudtræk. Med nul afhængigheder og MIT-licens er det en favorit blandt Java-udviklere, der har brug for pålidelig HTML-behandling.
Nøglefordele ved jsoup:
- Real-world HTML-håndtering: Parser rodet HTML som browsere gør
- jQuery-lignende syntaks: Velkendte CSS-selectorer (f.eks.
doc.select("div.content")
) - Scraping-venlig: Følger omdirigeringer, håndterer cookies og sender formularer
- Cross-platform: Ren Java uden native afhængigheder
- Sikkerhed: Indbygget XSS-forebyggelse og HTML-sanering
Perfekt til datamining, webautomatisering og indholdsanalyse.
Hvorfor vælge jsoup?
- Enkelhed: Intuitivt API med CSS-selector-understøttelse
- Pålidelighed: Aktivt vedligeholdt siden 2009
- Ydeevne: Optimiseret til streaming og store dokumenter
- Fleksibilitet: Arbejder med fragmenter, filer eller live URL'er
- Ren output: Pænt formaterer og omstrukturerer HTML
Installation
Tilføj 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 brugsscenarier for jsoup:
Eksempel 1: Parse et dokument fra en streng
Hvis du har HTML i en Java-streng, og du vil parse HTML'en for at få dens indhold eller ændre den, kan jsoup gøre dette med få kodelinjer.
Metoden parse(String html, String baseUri) konverterer input-HTML'en til et nyt Document. baseUri-parameteren hjælper med at løse relative URL'er til absolutte og bør svare til den URL, dokumentet blev hentet fra. Hvis dette ikke er relevant, eller hvis HTML'en indeholder et <base>-element, kan du bruge den simplere parse(String html)-metode i stedet.
Eksempel 2: Brug CSS-selectorer til at finde elementer
Du vil finde eller manipulere elementer ved hjælp af CSS-selectorer. Parse og manipuler en HTML-streng direkte:
Eksempel 3: Ændre et elements HTML
Du har brug for at ændre et elements HTML. Brug HTML-sættermetoderne i Element som vist i følgende kodeeksempel:
Avancerede funktioner
jsoup understøtter professionel HTML-behandling:
- Formularhåndtering: Send POST-data:
Formularindsendelse
Connection.Response res = Jsoup.connect("https://example.com/login") .data("username", "user", "password", "pass") .method(Connection.Method.POST) .execute(); Document dashboard = res.parse();
- Proxy-understøttelse: Scrap via proxy:
Proxyopsætning
Document doc = Jsoup.connect("https://target.com") .proxy("127.0.0.1", 8080) .get();
- DOM-manipulation: Ændr HTML-struktur:
DOM-ændringer
doc.select("div.ads").remove(); // Fjern alle annoncer doc.select("h1").attr("class", "header"); // Tilføj CSS-klasse
jsoup vs. HTMLUnit
Nøgleforskelle:
- Fokus: jsoup parser statisk HTML; HTMLUnit simulerer browsere (JavaScript-udførelse)
- Hastighed: jsoup er hurtigere til ren HTML-parsning
- API-stil: jsoup bruger CSS-selectorer; HTMLUnit efterligner Selenium
- Brugsscenarier: jsoup til scraping; HTMLUnit til test af dynamiske sider
- Afhængigheder: jsoup har ingen; HTMLUnit kræver yderligere biblioteker
Konklusion
jsoup er det ultimative HTML-værktøjssæt til Java-udviklere. Ideel til:
- Web scraping: Udtræk data fra enhver hjemmeside
- Datarensning: Saner og normaliser HTML
- Indholdsanalyse: Parse RSS-feeds eller webarkiver
- Testning: Verificer HTML-struktur i apps
Med sin MIT-licens og intuitive API er jsoup det bedste valg til HTML-behandling i Java.
Lignende Produkter
- Apache POI XWPF | Open Source Java API til at oprette og ændre DOCX-filer
- DocX | Open Source .NET API til at oprette og ændre DOCX-filer
- Docx4J | Open Source Java API til at oprette og ændre DOC- og DOCX-filer
- ExcelDataReader | Open Source .NET API til at læse XLS-, XLSX-, CSV- og regnearksdokumenter
- FileFormat.Cells | Cerate og opdater Excel-filer med C# .NET