Raspagem de dados sem escrever código
E se eu te disser que dá pra raspar dados sem escrever uma linha de código?
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.
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:
Bem massa! No entanto, esse método de disponibilização dos dados em imagens traz dois problemas:
- 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;
- 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:
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:
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:
Isso facilita o processo de encontrar a tabela no HTML:
Aí vamos clicar com o botão direito na tag <table>
para abrir o menu e usarmos 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:
- Eu abri o Bloco de Notas e colei o conteúdo da tabela lá;
- Em seguida, eu salvei esse arquivo como tabela.html;
- 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:
E aí é só seguir o site, no passo 1, escolha a aba de seleção de arquivos e subir o nosso arquivo tabela.html:
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:
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:
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 😉