Upgrade to Pro — share decks privately, control downloads, hide ads and more …

Raspagem de Dados com Ruby

Duke
October 21, 2012

Raspagem de Dados com Ruby

Apresentação na UNIFEI - Universidade Federal de Itajuba onde falei sobre Raspagem de Dados com Ruby

Duke

October 21, 2012
Tweet

More Decks by Duke

Other Decks in Programming

Transcript

  1. var parser = function(i, tr){ var item = $(tr) ,

    hour = item.find("td:eq(0)").text() , title = item.find("td:eq(1)").text(); document.save({ hour : hour, title : title }); }; $(".table-striped tbody tr").each(parser);
  2. def download_funk(category) target = "#{BASE_URL}?cat=#{category}" music_index_parser = parser(target) music_index_parser.search(".download-funk").each do

    |parser_musica| begin music_show_link = parser_musica.search("a")[0].attr("href") music_show_parser = parser("#{BASE_URL}#{music_show_link}") music_info = music_show_parser.search("#interna_a") name = music_info.search("h2").text() link = music_info.search(".texto a").attr("href") download = parser_musica.search(".contador").text() date = parser_musica.search(".data").text() ScraperWiki.save(["name"], ....) rescue next end end end
  3. class Beco203Bot < AugustaBot def create_parties! end private def parties

    parser(".agenda-item.beco-sp", "capa-beco-sp.php") end end class Beco203PartyBot < AugustaPartyBot def name end end
  4. require 'spec_helper' describe Beco203Bot do let(:beco_bot) { Beco203Bot.new } describe

    "create_parties!" do before do ...{stub_requests}... end it "saves a parties with name" do beco_bot.create_parties! Party.first.name.should == 'Festa 1' end end end
  5. class Beco203Bot < AugustaBot def create_parties! parties.each do |item| party_bot

    = Beco203PartyBot.new({params}) party_bot.name =(item/".texto").text Party.create! party_bot.attributes end end private def parties parser(".agenda-item.beco-sp", "capa-beco-sp.php") end end class Beco203PartyBot < AugustaPartyBot def name parser.search(".conteudo-interna h1").text.clean end end
  6. Qual era o preço médio uma casa no São Paulo

    em 1921? Que balada vai acontecer hoje na Rua Augusta? Dados para responder muitas, muitas perguntas como essas estão por aí na Internet em algum lugar - mas nem sempre é fácil encontrar. - Hackeado do thedatahub.org