Loucos por TecnologiaUm blog sobre tecnologia, inovação e marketing para ensino online.

Desenvolvido para impactar
e otimizar resultados.

Acompanhe e faça parte!

Seu e-mail está seguro. Vamos enviar apenas dicas relevantes para o seu EAD.

Automatizando tarefas com web crawlers – Mechanize

Automatizar processos é algo do dia-a-dia do programador, não só se tratando do produto principal de uma empresa ou de um sistema, mas também atividades repetitivas e cansativas. O Problema Imagine que um cliente tenha um e-commerce, mas que não esteja satisfeito com o sistema atual e peça para sua empresa um e-commerce melhor e […]

banner_blog_AI

Automatizar processos é algo do dia-a-dia do programador, não só se tratando do produto principal de uma empresa ou de um sistema, mas também atividades repetitivas e cansativas.

O Problema

Imagine que um cliente tenha um e-commerce, mas que não esteja satisfeito com o sistema atual e peça para sua empresa um e-commerce melhor e que atenda melhor as suas necessidades. Tudo vai muito bem enquanto você desenvolve o sistema novo, usando as tecnologias mais atuais. De repente o cliente entra em contato e surge uma nova tarefa. Você vai ter que migrar seus produtos, mas por algum motivo o cliente não tem como te repassar as imagens diretamente, e nem a associação correta com os produtos. Como realizar essa tarefa? Ir de página em página no sistema antigo e baixar imagem por imagem é muito cansativo, trabalhoso, e não parece ser uma boa ideia. É aí que entra uma das utilidades de um web crawler.

A solução

Um web crawler é um script com o objetivo de “rastejar” ou “passear” por páginas web, com muitas funcionalidades, como indexar páginas novas (Google), salvar imagens, salvar arquivos, ou simplesmente fazer raspagem de dados (Web scrapping).

Existem muitas maneiras de se criar um crawler utilizando bibliotecas prontas disponíveis. Alguns exemplos são o framework Scrapy, feito em Python, o crawler4j em Java, e o Mechanize e Watir, que são bibliotecas Ruby.

Apresentando o Mechanize

Em uma certa ocasião, para auxiliar na migração de dados do cliente, já precisei utilizar um web crawler. Um sistema antigo contava com diversos arquivos pdf. Dado que existiam inúmeros cursos e que precisaria baixar todos os arquivos de cada curso, automatizei este processo utilizando o Mechanize.

O mechanize está disponível como uma gem, então para baixa-lo basta executar o seguinte comando:

Baixe grátis 77 headlines para email marketing
gem install mechanize

Após isto, em um arquivo ruby ou diretamente pelo interpretador, é preciso incluir as classes da biblioteca

require 'mechanize'

Feito isto, você pode instanciar um objeto da classe Mechanize, e em seguida passar uma URL.

O código abaixo cria um objeto page, e roda um loop exibindo todos atributos href dos links da página.

agent = Mechanize.new

agent.get("http://www.algumaurlqualquer.com") do |page|
  page.links.each do |link|
    puts link.href
  end
end

Existem outros métodos para o objeto page, para mostrar ou capturar as imagens, capturar elementos DOM ou até mesmo preencher formulários.

O Mechanize porém tem algumas desvantagens. Se por exemplo for necessário se utilizar de JavaScript para chegar a certas páginas, o Mechanize vai falhar, pois o script é executado sem o navegador.

Nos próximos capítulos…

Este foi um simples exemplo. Se estiver mais curioso de como se utilizar da biblioteca para automatizar tarefas, a melhor maneira de aprender, jovem Padawan, é sujando as mãos com código, então mãos à obra!

Nos próximos posts apresentarei novas bibliotecas. Fique antenado!

Banner_blog_herospark
ActiveRecord - Otimizando consultas com subqueries
Como abraçamos o ES6 em nossas aplicações - Parte 1

Comentários (7)


  1. 19/06/2015 às 02:20

    algum tutorial que ensine a motar um webcrawler em portugues?

  2. Pingback: gestational diabetes casserole recipes

  3. 07/11/2017 às 15:14

    Tem um setor dentro da minha empresa de buscas que eu gostaria de automatizar, pois o dia a dia é bastante repetitivo e cansativo. Hoje trabalhamos com control c +Google. Teria alguma sugestão de quem forneça esse tipo de serviço ?

    Muito obrigado.

  4. Renan Levinskie
    30/11/2018 às 10:35

    Olá!
    é possível criar um robo que logue em um site, e baixe um relatório?
    Ou seja ele precisa acessar um site todos os dias, clicar em 2 ou 3 ações dentro do site.

    O site que me refiro é o Hubspot e o relatório é o relatório de clientes.

    • Paola Menezes
      18/12/2018 às 10:45

      Olá! Você conseguiu solução? Estou com a mesma dúvida!

Deixe uma resposta

Seu e-mail está seguro. Vamos enviar apenas dicas relevantes para o seu EAD.