Raspagem de dados sem escrever código

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

Jessica Temporal
May 8, 2019 · 6 min read
Image for post
Image for post

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.

Image for post
Image for post

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:

Image for post
Image for post

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:

Image for post
Image for post

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:

Image for post
Image for post

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:

Image for post
Image for post

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:

Image for post
Image for post

Isso facilita o processo de encontrar a tabela no HTML:

Image for post
Image for post

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

Image for post
Image for post

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:
Image for post
Image for post

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

Image for post
Image for post

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:

Image for post
Image for post

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:

Image for post
Image for post

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:


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

pizzadedados

O primeiro podcast brasileiro sobre ciência de dados

Thanks to gabriela caesar, Leticia Portella, and Gustavo Coelho

Jessica Temporal

Written by

Data Scientist. Loves to write beautiful code and technical posts. Co-host @ Pizza de Dados pizzadedados.com Pronouns: she/her/hers

pizzadedados

O primeiro podcast brasileiro sobre ciência de dados

Jessica Temporal

Written by

Data Scientist. Loves to write beautiful code and technical posts. Co-host @ Pizza de Dados pizzadedados.com Pronouns: she/her/hers

pizzadedados

O primeiro podcast brasileiro sobre ciência de dados

Welcome to a place where words matter. On Medium, smart voices and original ideas take center stage - with no ads in sight. Watch
Follow all the topics you care about, and we’ll deliver the best stories for you to your homepage and inbox. Explore
Get unlimited access to the best stories on Medium — and support writers while you’re at it. Just $5/month. Upgrade

Get the Medium app

A button that says 'Download on the App Store', and if clicked it will lead you to the iOS App store
A button that says 'Get it on, Google Play', and if clicked it will lead you to the Google Play store