potente.
Nos permite extraer información de páginas HTML.
Básicamente es una libreria la cual permite pasar código HTML a un objeto.
En nuestra clase necesitamos implementar :
require 'openuri'
require 'hpricot'
- openuri: Nos permite abrir una url, por ejemplo una pagina html.
- hpricot; Nos permite utilizar la librería Hpricot Hpricot Basics.
Cargar una pagina HTML:
Se puede cargar de un String:
doc = Hpricot("<p>A simple <b>test</b> string.</p>")
Se puede cargar de un Fichero:
- doc = open("index.html") { |f| Hpricot(f) }
- require 'openuri'
- doc = Hpricot(open("http://qwantz.com/"))
Se pueden usar expresiones XPath o CSS.
Expresiones CSS
Doc.search realiza una búsqueda recibiendo como
parámetro la expresión, nos devolverá un array.
doc.search (“p.posted”)
doc / “p.posted” > “ / ” Alias del metodo search
En ambos casos se devolverán todos los elementos
p con la clase “posted”.
< class =" “posted”">
Selectores CSShttp://www.w3.org/TR/CSS21/selector.html (punto 5.1)
Encadenar Búsquedas
require 'rubygems'
require 'openuri'
require 'hpricot'
men = open("http://www.marca.es")
doc = Hpricot(men)
noticia = doc / ".noticiaPrincipal"
enlace = noticia / "a"
puts "Elementos <a> dentro de la
clase noticiaPrincipal"
enlace.each{|e|
puts e.inner_html
}
Obtener Elementos
inner_html: Este método nos devuelve el html
interno del elemento.
get_attibute(“atributo”): Este método nos devuelve
un atributo de un elemento. (También se puede
acceder con [] )
enlace.each{|t|
puts t['href']
puts t.get_attribute('href')
}
Nota: para añadir codigo HTML y que no sea interpretado:
http://blogcrowds.com/resources/parse_html.php
No hay comentarios:
Publicar un comentario