Voglio fare un po 'di screen scraping, idealmente usando selettori CSS e non XPath. Esiste una libreria simile a quella in Ruby o Python?Esiste una libreria simile a lxml o nokogiri per Java?
9
A
risposta
7
Ci sono dozzine di librerie di screen scraping scritte in Java. Solo per citarne alcune:
- TagSoup - un parser SAX-compliant scritto in Java che, invece di analisi ben formate o XML valido, analizza HTML come si trova nella selvaggio: brutto e brutale, anche se piuttosto , spesso tutt'altro che breve. TagSoup è progettato per le persone che devono eseguire il processo utilizzando alcune delle similitudini di un'applicazione razionale . Fornendo un'interfaccia SAX, consente agli strumenti XML standard di essere applicati anche ai peggiori HTML.
- Jericho HTML Parser - Jericho parser HTML è un semplice ma potente libreria Java che consente l'analisi e la manipolazione di parti di un documento HTML , tra cui alcuni comuni tag server-side , riproducendo testualmente qualsiasi non riconosciuto o non valido HTML. Fornisce inoltre funzioni di manipolazione dei moduli HTML di livello superiore . t è né un evento né un parser basato su , ma utilizza piuttosto una combinazione di ricerca testo semplice, un tag efficiente e una cache di posizione del tag. Il testo dell'intero documento di origine viene prima caricato in memoria, e poi solo i segmenti rilevanti cercato per i personaggi importanti di ogni operazione ricerca.
- HTML Cleaner - HtmlCleaner riordina i singoli elementi e produce un XML ben formato dallo sporco HTML. Segue regole simili a che la maggior parte dei browser Web utilizza nell'ordine per creare un modello di oggetto documento. Un utente può fornire un tag personalizzato e la regola impostata per il filtro e il bilanciamento dei tag.
- NekoHTML - NekoHTML è un semplice sistema di bilanciamento dello scanner HTML e tag che consente ai programmatori di applicazioni per documenti analizzare HTML e accedere alle informazioni utilizzando XML standard interfacce. Il parser può eseguire la scansione dei file HTML e "sistemare" molti errori comuni di che gli autori umani (e computer) dello creano in scrittura di documenti HTML . NekoHTML aggiunge gli elementi parentali mancanti; chiude automaticamente gli elementi con tag di fine opzionali; e in grado di gestire tag non corrispondenti degli elementi in linea .
e molti altri a HTML Screen Scraping Tools written in Java. Ma questi sono IMO il migliore per affrontare qualsiasi tipo di contenuto (capire tutti i tipi di cazzate) come ho menzionato in this previous answer. Questo potrebbe non essere un problema per te però.
Per ogni evenienza, controllare la filettatura Nokogiri pure Java status.
Aggiornamento: Un nuovo progetto è stato rilasciato (il 2010-01-31), jsoup, che offre una selector-syntax to find elements. Vedere il suo sito Web per ulteriori dettagli e/o this answer dal suo autore.
1
È possibile utilizzare hpricot tramite jRuby. Vedi this SO question per maggiori dettagli a riguardo.