Automação web para coleta e raspagem de dados com Selenium

SOBRE O WORKSHOP

Texto por Eduardo Costa
Revisado pela Escola de Dados

 

Você já tentou coletar dados em páginas web e não conseguiu com as ferramentas tradicionais como BeautifulSoap, Web-Scraper.io ou Requests? Isso acontece porque algumas páginas disponibilizam dados em scripts executados durante o carregamento, modificando a sua estrutura HTML. A ideia deste workshop foi mostrar um jeito de coletar dados em páginas onde não é possível utilizar as tecnologias citadas acima.

Antes de iniciar a prática, Alexandre Cajazeira e Jonisson Lima falaram um pouco sobre como funciona o fluxo de trabalho com dados, com base no livro Fluxo de trabalho com dados, do zero à prática, da Escola de Dados. São 7 etapas: perguntar, encontrar, obter, verificar, limpar, analisar e apresentar. Aqui, o trabalho começa a partir da etapa obter.

Nessa etapa, busca-se ter em mãos conjuntos de dados para se dar sustentação aos projetos de reportagem e existem 3 maneiras de se conseguir isso:

    • Coleta primária, onde você constrói sua base de dados;
    • Encontrando bases disponíveis na web;
    • Via Lei de Acesso à Informação (LAI).

 

Os instrutores apresentaram o conceito de web scraping que é justamente a extração/raspagem de dados de forma automatizada por meio da elaboração de scripts que realizam requisições HTTP que simulam um usuário acessando determinados sites. Para elaborar um script, é preciso conhecer a estrutura do funcionamento das páginas web HTTP, compostas por HTML, CSS, Web APIs e JavaScript.

 

 

Mas por que raspar dados com automação de navegadores? Alexandre e Jonnison apontam que apesar de cada vez mais os dados públicos estarem disponíveis na web, há dificuldades na análise, visto que existem páginas que: 

    • não disponibilizam os dados em formato aberto;
    • possuem bases muito grandes em que a coleta manual se torna inviável;
    • bloqueiam a coleta automatizada;
    • possuem dados “apresentados” durante o carregamento limitam a coleta por algumas bibliotecas.

 

Dessa forma, a biblioteca Selenium se apresenta como uma ferramenta de testes automatizados de aplicações web para múltiplas plataformas, composta por três partes: o webdriver (a interface pela qual se programa); driver (interligação do Selenium com o navegador) e browser (o navegador em si).

Como pontos positivos, o Selenium resolve problemas de páginas carregadas dinamicamente e agrega liberdade à coleta de dados. Entretanto, os códigos são muito específicos para cada problema e mudanças na fonte dos dados comprometem as soluções. 

 

 

Para a parte prática, os instrutores sugeriram coletar dados do Painel Coronavírus, do Ministério da Saúde e Despesas por Função, da Prefeitura de Fortaleza. Durante a prática, os instrutores explicaram a importância da automatização, ainda que os dados nestes exemplos estejam disponíveis para download, e também explicaram os desafios de automação de cada página.

O interessante é que embora os exemplos possam variar por cada página, em muitos casos é possível adaptar os códigos para conseguir resultados semelhantes. Os instrutores mostraram o passo a passo de como coletar os dados em cada um dos sites sugeridos, utilizando a o Selenium na plataforma Google Colab. Para ir além, eles indicaram algumas páginas onde o Selenium poderia ser utilizado, para reutilizar a lógica do código apresentado na oficina. 

REFERÊNCIAS

alexandrecajazeira

Alexandre Cajazeira

Bacharel em Sistemas da Informação pela Universidade Federal do Piauí – CSHNB. Especialista em Gestão de Tecnologias da Informação pela Universidade Cândido Mendes (UCAM). Mestre em Ciência da Computação pelo programa de Mestrado e Doutorado em Ciência da Computação (MDCC), da Universidade Federal do Ceará – UFC. Tem interesse no estudo e desenvolvimento de visualizações interativas de dados na web. Foi professor do ensino médio técnico em Informática, no Instituto Federal do Piauí – IFPI, campus São Raimundo Nonato e atualmente é Cientista de Dados no jornal O POVO.

jonisson

Jonisson Lima Ferreira

Bacharel em Sistemas da Informação pela Universidade Federal do Piauí – CSHNB. Mestre em Ciência da Computação pela Universidade Federal do Maranhão – UFMA. Doutorando em Engenharia Elétrica na Universidade Federal do Maranhão – UFMA, onde também integra o NCA (Núcleo de Computação Aplicada). Atualmente é técnico em tecnologia da informação na Universidade Federal do Piauí e membro do Grupo de Pesquisas Avançadas em Visão e Inteligência Computacional da Universidade Federal do Piauí – CSHNB. Tem experiência em Ciência da Computação na área de aprendizado de máquina, com foco em processamento digital de imagens e desenvolvimento web.

REALIZAÇÃO

PATROCÍNIO

CORREALIZAÇÃO

APOIO

Nosso conteúdo está disponível sob a licença Creative Commons Atribuição 4.0 Internacional, e pode ser compartilhado e reutilizado para trabalhos derivados, desde que citada a fonte.