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
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 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
Visite o site da edição anterior. Confira o site do Coda.Br 2023.
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.