Tag: APIs

Criando Uma Página Pessoal com Sinatra, Haml e Sass

Sempre procuro tornar o processo de aprendizagem o mais prático possível. O estudo se torna muito mais prazeroso e desafiador se utilizarmos um objetivo prático a ser alcançado ao final dos estudos.

Há algum tempo venho querendo experimentar o Sinatra, pequeno framework web escrito em ruby, mas estava esperando por um motivo pra isso. Quando eu estava acabando a criação deste blog, me surgiu a idéia de ter uma página inicial, semelhante à página de perfil de sites de relacionamento.

Unindo ao útil ao agradável, resolvi implementar essa parte do meu site usando Sinatra. Mas primeiros, precisamos juntar as informações necessárias para apresentar na página.

APIs Diversas: Flickr, Twitter, Last.Fm em Ruby

Como já foi dito antes, eu amo APIs e a possibilidade infinita que elas proporcionam. Nada melhor do que uma coleção de informações pessoais deixadas em sites que eu utilizo para rechear minha página de apresentação. A maioria das APIs disponíveis publicamente já possuem sua implementação em Ruby, tornando o uso das mesmas extremamente simples através das rubygems.

As APIs e suas respectivas gems utilizadas estão listadas abaixo:

Flickr – flickr-fu
Twitter – Ruby Twitter
Gravatar – Sem gem, mas de uso simples com Ruby.
Last.fm – Scrobbler

Com as Gems devidamente instaladas, precisamos configurar a parte que liga toda nossa página, através das routes e configurações adicionais do Sinatra.

Sinatra

Sinatra é um framework para pequenas aplicações web, pequeno e elegante, que nos permite criar pequenas páginas rapidamente com o uso de uma DSL própria, como nesse pequeno exemplo contido na página inicial:

require 'rubygems'
require 'sinatra'
get '/hi' do
  "Hello World!"
end

Certo, mas agora vamos a um exemplo mais prático. Com o seguinte código, é possível coletar os dados necessários para a nossa página:

Read more…

Extendendo APIs Com Scraping

APIs públicas são uma das coisas mais bacanas da internet, a força propulsora da revolução web 2.0. A possibilidade da criação de mashups através de dados disponibilizados publicamente por sites como Flickr, NYTimes, Digg e outros, nos permite uma possibilidade de combinações limitadas apenas à nossa imaginação. Porém, como nem tudo são flores, nem sempre os sites que disponibilizam seus dados fornecem 100% das funcionalidades oferecidas no próprio site em si. Na verdade, nem deveriam.

Como faríamos para extender as possibilidades fornecidas por estas Apis?

Scraping

De acordo com o Wikipedia:

“Web scraping (or Web harvesting, Web data extraction) is a computer technique of extracting information from websites using specially coded software programs. Usually, such software programs simulate human exploration of the Web by either implementing the low-level Hypertext Transfer Protocol (HTTP), or embedding certain full-fledged Web browsers, such as the Internet Explorer (IE) and the Mozilla Web browser.”

Resumindo de maneira mais técnica, (X)HTML é no fundo XML. Ao navegarmos pelo conteúdo de uma página, podemos extrair informações através de parsing desse conteúdo. Existem diversas ferramentas, tanto de parsing quanto de scraping:

Scraping

  • ScRUBYt
  • Mechanize

Parsing

  • Hpricot
  • Nokogiri
  • REXML

Neste exemplo, utilizarei o Hpricot, por razões pessoais. Nunca parei para avaliar critérios como velocidade, facilidade, etc…

Read more…