Aplicação de Web Scraping

Tempo de leitura: 5 minutos
Desenvolvimento de Software
por em 17 de março de 2020

Em 2019, abordamos o conceito de Web Scraping aqui no blog. Essa técnica consiste em monitorar e analisar informações para diversos fins e está dentro do conteúdo Data Scraping, extração de dados da web. Recentemente, em uma nova edição do SoftDrops*, Felipe Bastos relembrou o tema e compartilhou com os colegas sua experiência utilizando Web Scraping, e explicou que a principal função da técnica é coletar dados para análise e insights com fins de otimização e personalização de serviços.

O trainee relatou como utilizou o Web Scraping para acessar dados na web durante a etapa de Desenvolvimento de um dos nossos projetos, com o objetivo de aumentar uma base cadastrada de produtos – tarefa essencial para suprir a necessidade do cliente. A técnica também foi fundamental para fazer análise de dados e facilitar a compreensão do negócio.

A linguagem escolhida para utilizar o Web Scraping foi Python, uma vez que ela é mais didática e atendia as necessidades do projeto. Já a biblioteca escolhida foi a Beautiful Soup, pacote Python para analisar documentos HTML e XML , que cria uma árvore as páginas que serão observadas.

Primeiros passos para Web Scraping

Para começar a utilizar a técnica, Felipe salienta três pontos importantes a serem observados. São eles:

1. Verificar os Robots.txt de uma página: são eles que indicam se o trabalho que estamos realizando na página é legal. Robots.txt são um arquivo salvo na pasta raiz do site, indicando para os bots quais páginas não devem ser acessadas pelos mecanismos de pesquisas. Para acessá-los basta digitar o endereço da página no seu navegador e adicionar o comando “/robots.txt” ao final da URL.

2. Criação da teia: ao acessar os Robots.txt conseguimos visualizar quais acessos são permitidos na página. Após essa verificação, analisamos a página na qual será iniciado o scraping e definimos como, a partir dessa página, serão acessadas outras de maneira automatizada. Na criação da ‘teia’ já pode ser feito um filtro sobre os dados – essa ação poupa tempo de trabalho pois, criando a teia, evita-se trazer dados que não são necessários para a base.

3. Biblioteca Beautiful Soup: como mencionado anteriormente, essa biblioteca possui funções específicas para a extração de dados da web. Ela permite criar uma árvore de análise para as páginas e pode ser utilizada para extrair dados HTML. Dentro da biblioteca, temos o Find/Findall, comandos básicos e fundamentais, que possibilitam a realização do scraping, trazendo os dados.

Obstáculos do Web Scraping

Para evitar desperdício de energia no Web Scraping, é fundamental saber quais dados estamos buscando. Felipe salienta que, ao coletar dados desnecessários para o seu projeto, o tempo de desenvolvimento sofre impacto, uma vez que demora mais para analisar dados que não serão utilizados.

Outro obstáculo que o trainee encontrou durante o projeto foi a inconsistência de alguns dados que só foram perceptíveis ao gerar arquivos para analisar as tabelas, pois as colunas mostravam dados diferentes. Isso pode acontecer em alguns sites não estão preparados para receber Web Scraping, ou seja, eles não têm tabelas iguais e dados exatamente iguais.

Selenium, conjunto de ferramentas para automatizar navegadores, se fez necessário ao realizar Web Scraping em um dos sites de interesse. Como o site renderizava o JS após ‘puxar’ o HTML por meio do Beautiful Soup, ele serviu como um passo anterior ao código, executando o script antes de ‘puxar o código’. Adicionando essa etapa, evitou-se que o processo de scraping parasse de funcionar por algum motivo.

*O SoftDrops é um evento de troca de conhecimento que acontece todas as quartas-feiras, na sede da SoftDesign. A cada semana, um colaborador se predispõe a expor para os colegas algum tema de seu interesse, que tenha relação com os três pilares do nosso negócio: design, agilidade e tecnologia. A minipalestra dura em torno de trinta minutos e é seguida por um bate-papo entre os participantes.