13Jan/110
Parsing dei link da un file html con Ruby e Nokogiri
Nokogiri è una fantastica libreria di ruby che consente di parsare dei file. E' molto intuitiva, e permette di trovare velocemente la soluzione senza necessariamente conoscerla a fondo.
Per esempio, se voglio trovare i link di un documento html:
#/usr/bin/ruby
require 'rubygems'
require 'nokogiri'
f = File.open("home.html")
@doc = Nokogiri::HTML(f)
links = @doc.xpath("//a")
links.each do |l|
p(l)
end
La libreria utilizza xpath, trova il tag "a" e lo mette nel node "l". Il risultato può apparire a prima vista confuso.
In realtà, una volta capito il concetto di node tutto appare chiaro. Stampiamo quindi a video il percorso assoluto dei link:
#/usr/bin/ruby
require 'rubygems'
require 'nokogiri'
f = File.open("home.html")
@doc = Nokogiri::HTML(f)
links = @doc.xpath("//a")
links.each do |l|
print(l['href']+"\n")
end