Raspagem de dados sem escrever código

E se eu te disser que dá pra raspar dados sem escrever uma linha de código?

Fonte

Isso mesmo: existem alguns tipos de dados que conseguimos raspar sem precisar da ajuda de uma linguagem de programação. E eu vou te mostrar como fazer isso! Para esse tutorial você vai precisar dos seguintes materiais:

  • Conhecimento básico de HTML (reconhecer a tag <table>);
  • Acesso a internet;
  • Seu navegador favorito;
  • Um site para coletar informação.

Por que raspar dados

Existe uma série de fatores que nos motivam a raspar dados. O primeiro que me vem à mente ao falar de raspagem é que muitas vezes os dados vêm num formato limitante para análises. Isso força a equipe a ter que extrair esse dado do contexto que ele foi disponibilizado para um formato mais maleável. Nesse tutorial vamos fazer exatamente isso: tirar os dados de uma tabela em um HTML para uma planilha.

Durante meu ano de trabalho na Serenata, outro fator que se tornou presente no meu dia-a-dia foi a necessidade de fazer o backup de dados. Especialmente quando lidamos com dados governamentais, uma preocupação constante é a disponibilidade e o acesso a esse dado. Existem vários mecanismos e políticas governamentais que afetam a disponibilidade desses dados. E isso acontece no mundo todo. Por exemplo, em 2016, cientistas nos Estados Unidos fizeram uma força-tarefa para fazer backup de vários conjuntos de dados antes que o Trump assumisse a Presidência por medo de que estes “desaparecessem”.

Por fim, mas não menos importante, dados que foram raspados abrem a possibilidade de inovação: novos pares de olhos olhando para os dados podem trazer novos insights a partir de novas análises e também, por serem de difícil acesso, poucas pessoas tem a oportunidade de fazer novas análises com eles.

Então, vamos raspar?


Bora lá! O Instituto de Pesquisa Econômica Aplicada (IPEA) libera um monte de informação interessante. Um das iniciativas do Instituto é o Atlas da Violência que mapeia coisas como a taxa de homicídios por 100 mil habitantes.

Marcadores do Atlas da Violência: Fonte

E o mais legal é que no próprio site do Atlas já é possível fazer filtros. Podemos fazer filtros em um intervalo de tempo ou decidir se queremos informações de municípios ou estados, e muitos outros. Além disso, ainda vemos mapas e gráficos com essas informações como a imagem abaixo que foi retirada do portal do Atlas, veja:

Mas não para por aí, além de filtros e visualizações, você pode também baixar esses dados em um formato de imagem contendo uma tabela:

Taxa de homicídio por 100 mil habitantes para todos os estados de 1996 a 2016, Fonte: tabela baixada do portal do Atlas da violência.

Bem massa! No entanto, esse método de disponibilização dos dados em imagens traz dois problemas:

  1. Retirar essa informações de uma imagem é custoso e causa a falta de confiabilidade no dado. O que, por sua vez, impede a reutilização desses dados para qualquer outro tipo de visualização ou estudo;
  2. E pior, quando a tabela é configurada para mostrar os dados separado por municípios, baixar esses dados é impraticável pois a imagem não consegue ser gerada — e é justamente esse dado que eu quero ter para analisar.

É aí que pessoas podem recorrer a técnicas de raspagem para coletar esses dados para suas análises. E é aí também que aparece a primeira dor: Ainn mas eu não sei programar! Como vou raspar os dados que eu quero?

Então vamos lá, curso rápido do que você vai precisar para raspar o dado sem programar.

HTML
Pra começar você precisa aprender a achar uma tag HTML chamada de <table>. O HTML é uma linguagem de marcação e basicamente todo e qualquer site na internet é um amontoado de HTML. Ele funciona com tags que marcam no texto o que é cada coisa. Elas são facilmente identificadas por se encontrarem entre os sinais de menor que (<) e maior que (>), por exemplo, se você quiser construir uma tabela você usa a tag <table>.

Inspecionar
Para ver o HTML da página que você está acessando, você vai clicar com o botão direito em alguma parte da página:

Fonte

E em seguida, na opção Inspecionar. Ao clicar nessa opção vai-se abrir um painel lateral que trazem ferramentas de desenvolvimento que vão te permitir investigar o HTML da página:

Fonte

Detalhe aqui: cada navegador tem um nome para a opção de inspeção, eu estava usando o Chrome para fazer as imagens acima, tenha isso em mente quando for tentar o mesmo no seu navegador favorito.

E agora que temos acesso ao HTML é só achar a tag <table>. Como achar tags num HTML pode ser bem caótico, eu uso o seguinte método:

Eu clico nesse botão (circulado em vermelho acima), que é o seletor de elemento para inspeção, quando ele fica azul, eu passo ele por cima da tabela, assim, o HTML lá no inspetor “pula” exatamente para onde está o código referente a tabela — elemento onde estou passando o mouse:

Seta em rosa mostra onde estava meu mouse. No quadrado em azul a esquerda o HTML que mostra o código referente aquela célula da tabela que meu mouse estava em cima

Isso facilita o processo de encontrar a tabela no HTML:

Circulado em vermelho a tag <table>

Aí vamos clicar com o botão direito na tag <table> para abrir o menu e usarmos a opção de copiar elemento:

Menu com a opção de copiar elemento

Parabéns! Você acabou de fazer o Ctrl C de um HTML 🎉.

Eu queria pegar a tabela que mostrava a taxa de homicídio por 100 mil habitantes para todos os municípios nos anos 1996 a 2016 porém, o conteúdo dessa tabela é muito grande para simplesmente copiar e colar ela direto no conversor então eu salvei um arquivo com essa tabela assim:

  1. Eu abri o Bloco de Notas e colei o conteúdo da tabela lá;
  2. Em seguida, eu salvei esse arquivo como tabela.html;
  3. Depois de salvar esse arquivo eu abri outra aba do meu navegador o Convert CSV, um site que faz a conversão de HTMLs para arquivos CSV e Excel. Veja o site abaixo:
Foto do Covert CSV

E aí é só seguir o site, no passo 1, escolha a aba de seleção de arquivos e subir o nosso arquivo tabela.html:

Passo 1

O passo 2 eu pulei pois quis manter a configuração padrão para o resultado que está aqui em baixo, mas vale salientar que como o separador de casa decimais no Brasil é a vírgula, é bom considerar trocar o separador (“Output field separator” ali no Passo 2) de vírgula (,) para ponto e vírgula (;) para evitar as aspas duplas na hora de abrir os nossos dados no Excel por exemplo:

Passo 2

Por fim, chegou a hora de fazer o Download dos dados, note que ao subir o nosso arquivo o site já fez a conversão e mostra a pré-visualização dos dados, mas o que nos interessa é fazer o download do CSV usando o botão logo abaixo da caixa de resultado:

Passo 3

Eu disponibilizei a tabela de resultado aqui caso você queira conferir.


Se você quiser saber mais sobre raspagem, recomendo ouvir o Episódio 009 do Pizza de Dados:

Episódio 009 — Sobre crawlers e scrappers

Um xêro, por hoje é só pessoal 😉