Un jour, une gem

20/06/2012

Mercredi c'est Sinew

gem install sinew

Framework pour du Web scraping

Aujourd’hui une gem qui donne toute une batterie d’outils :

  • Un DSL Ruby pour le crawling
  • Un système de cache
  • Avec de vrais morceaux de Nokogiri dedans

Un petit exemple d’utilisation issu de la doc :

mon_fichier.sinew

# la page à traiter
get "http://www.amazon.com/gp/bestsellers/books/ref=sv_b_3"

# on trouve les différentes entrées avec Nokogiri
noko.css(".zg_itemRow").each do |item|
  row = { }
  row[:url] = item.css(".zg_title a").first[:href]
  row[:title] = item.css(".zg_title")
  row[:img] = item.css(".zg_itemImage_normal img").first[:src]

  # on ajoute la ligne à un csv
  csv_emit(row)
end

Ensuite on lance :

sinew mon_fichier.sinew

Et hop, un fichier mon_fichier.csv est généré avec les données récupérées.

Les liens utiles