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.

GitHub

GitHub-statistik

Navn:
Sprog:
Stjerner:
Forgafler:
Licens:
Repository blev sidst opdateret kl

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:

HTML-parsning med 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

 Dansk