Wagner Andrade / 17 posts / 29 comments / feed / comments feed

Ruby Snapshot #1

Este é o primeiro post de uma serie chamada Ruby Snapshot. O objetivo desta serie é mostrar grandes soluções com poucas linhas de código Ruby. Quem quiser mandar um snapshot será muito bem vindo.

Para começar quero colocar um script que me quebra vários galhos, serve para traduzir uma palavra, frase ou texto de um idioma para outro, através do Google Translate. Nesse script estou utilizado a gem Hpricot, que faz parse de HTML, recomendo!

require 'net/http'
require 'hpricot'

html = Net::HTTP.new('translate.google.com').post('/translate_t', "langpair=en|pt&text=#{ARGV[0]}”).body
puts Hpricot(html).at(’#result_box’).inner_text

Explicando: primeiro um post na página do Google Translate, passando como parâmetro o langpair e o texto a ser traduzido, que passo como parametro de console. O exemplo mostra uma tradução de inglês para português, mas é bem fácil alterar mudando o parâmetro do post: langpair, neste caso en|pt (English to Portuguese).

Depois, utilizando a gem Hpricot, faço um parse no HTML de resultado do post, pegando o trecho do resultado (o conteúdo de uma div com id result_box) e exibo no console.

Salvando esse script com o nome traduza.rb, por exemplo, o resultado seria o seguinte:

>> traduza.rb "Hello World!"
=> Olá Mundo!

Simples, fácil e útil. Adapte e use na sua aplicação Rails!

5 Comentários

  1. Daniel Tamiosso — 27 de maio de 2008

    Boa! Grande novidade na blogosfera. Com certeza todas as suas “escrituras” serão úteis e logo logo se espalharão pôr esses cantos uniformes do Brasil tão sedento de informações válidas. Quem sai ganhando somos nós.

    Sobre o post, já tivemos uma discussão, e pelo que eu lembre o resultado foi 2 a 1 pra ti. De virada! Então não tenho o que discutir mais…

    Abração figura!

  2. herval — 27 de maio de 2008

    belo pedaço de código! :-)

  3. Lucas Schauer — 27 de maio de 2008

    e dale Was!

  4. Rafael — 28 de maio de 2008

    Wagner, parabéns pelo blog. Gostei dele, é limpo, visualmente, e o conteúdo me agrada. Falando especificamente deste post, gostei muito, é uma ótima dica. Só me diz uma coisa, você viu na documentacao do google translate (se é que isso existe) a forma de se fazer o post ?

    Rafael.

  5. Wagner Andrade — 28 de maio de 2008

    E ai Rafael! Valeu cara! Respondendo:

    Pra dizer a verdade nem sei se existe essa documentação, usei o Firebug, aquele addon de Firefox, indispensável! Ele tem uma aba - Net se não me engano - monitora todos os requests feitos para montar a página. Dei uma olhada nos parâmetros, vi os que eram obrigatórios e pronto.

    Também dá pra usar um sniffer pra fazer isso, Wireshark, por exemplo. Mas dá mais trabalho.

    Abraço!

Deixe um comentário