Feed 89 FM - 13/05/07

Depois que eu comecei a usar FeedReaders online (primeiro usei o Bloglines agora migrei para o Google Reader) nunca mais visitei qualquer site para ir atrás de notícias, quer dizer, visitava apenas um: o site da 89 FM.

Sempre pensei em criar um feed para a seção Notas Musicais do site. Só que nunca fui atrás, por pura falta de tempo em procurar por bibliotecas que fizessem o Parsing em HTML, tanto em Python ou PHP.

Depois de conhecer Ruby, pensei em perder um tempinho, procurando alguma biblioteca que fizesse o Parsing HTML, e depois, construir o feed RSS. Fazer o Feed seria a parte mais fácil, graças à biblioteca Builder usada para gerar arquivos XML.

O parsing ficaria à cargo da excelente Hpricot. Porém, encontrei uma outra biblioteca, chamada Feedalizer que usa a Hpricot para criar feeds RSS. Menos trabalho que isso, impossível!

Então, aqui vai o código usada para gerar o feed da página:

#!/usr/bin/env ruby
 
require "rubygems"
require "feedalizer"
require "time"
 
rss = File.new("arthurgeek.net/89.xml","w")
 
feedalize("http://www.89fm.com.br/notas/") do
  feed.title = "89 FM Notas"
  feed.about = "..."
  feed.description = "Notícias do mundo musical da 89FM"
 
  scrape_items("a.formtextobranco") do |rss_item, html_element|
    rss_item.link  = "http://www.89fm.com.br" + html_element.attributes["href"]
    rss_item.date  = Time.parse(html_element.to_s)
    rss_item.title = html_element.inner_html
 
    rss_item.description = html_element.inner_html
  end
 
  output! rss
end
 
rss.close

O arquivo do feed está disponível aqui e já estou usando-o há mais de 2 meses, e acredito, que não tem mais bugs, e pode agora, ser usado por qualquer um.

Ah, como eu gosto desta linguagem…