Nessun risultato. Prova con un altro termine.
Guide
Notizie
Software
Tutorial
  • Lezione 12 di 32
  • livello principiante
Indice lezioni

Hpricot

Un parser per analizzare intere pagine Web e isolare tag e contenuti
Un parser per analizzare intere pagine Web e isolare tag e contenuti
Link copiato negli appunti

In questo capitolo illustreremo brevemente delle librerie per la gestione e la generazione di codice HTML e di sessioni WWW. In questa lezione facciamo la conoscenza di Hpricot, nelle prossime incontreremo BlueCloth, Markaby e Mechanize.

Hpricot è un parser HTML semplice e veloce. Permette inoltre di fare ricerche basandosi sugli ID degli elementi, sui selettori CSS, sui tag e in generale tutto quello che identifica una parte di una pagina HTML.

È possibile importare i dati da analizzare sia da file

doc = open("index.html") { |f| Hpricot(f) }

sia da internet utilizzando ad esempio "open-uri"

require 'open-uri'
doc = open("http://qwantz.com/") { |f| Hpricot(f) }

o ancora passandoli direttamente sotto forma di stringa

doc = Hpricot("<html><body><p>Una semplice pagina HTML.</p></body></html>")

Una volta importato il codice HTML possiamo estrarre tutti i tipi di informazioni usando adeguatamente i metodi "search" e "parse"; informazioni che possiamo manipolare a piacimento. Vediamo un esempio che ci permette di estrarre il testo in grassetto da del codice HTML

require 'rubygems'
require 'hpricot'

html=<<FIN
  <html><body>
    <p>Paragrafo di prova.</p>
     <b>Testo in grassetto</b> e 
     <i>testo in corsivo</i>.
  </body></html>
FIN

doc = Hpricot(html)
doc.search(:b).each do |bold|
   puts bold.inner_html
end

Dopo aver importato le giuste librerie e passato a Hpricot il testo HTML da analizzare, per comodità l'abbiamo passato sotto forma di stringa ma la sostanza non cambia, ricerchiamo tutte le occorrenze del tag <b> e ne stampiamo a video il contenuto usando inner_html che restituisce il contenuto dell'elemento selezionato.

Ti consigliamo anche