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.
Se vuoi aggiornamenti su Development inserisci la tua email nel box qui sotto: