Web Scraping como técnica no SoftDrops - SoftDesign
Web Scraping como técnica no SoftDrops
por SoftDesign em 8 de maio de 2019
Com o objetivo de extrair dados de páginas da web de forma automática, o Web Scraping é uma técnica que consiste em monitorar e analisar informações para diversos fins. O assunto foi destaque do SoftDrops do dia 17 de abril, realizado por Filipe Condé. O desenvolvedor apresentou aos colegas a técnica que utilizou para facilitar sua decisão de compra ao comparar preços de diversos sites.
Análise e comparação para apoiar decisões
O Web Scraping pode ser compreendido como um mecanismo de extração de dados dentro de uma página web. Seu propósito é apoiar decisões estratégicas, visto que fornece dados para analisar informações de variadas páginas ou de uma página específica. De acordo com Filipe, "é possível utilizá-lo para comparar preços de passagens aéreas de diferentes companhias, por exemplo, sem que haja a necessidade de acessar uma página por vez. Ele também pode ser usado para realizar um escaneamento em termos e palavras-chaves específicos, como comentários negativos num fórum ou rede social" explicou o desenvolvedor.
Implementação de Web Scraping
Segundo Filipe, na implementação do Web Scraping destacam-se duas fases, que podem ser: pré-execução e execução. Na pré-execução, o objetivo é selecionar o site alvo da extração e estudar sua estrutura a fim de construir os seletores necessários (Seletor CSS, XPath, XQuery, Regexp, etc) para a extração dos dados. Já na execução, ocorre o carregamento da página, a extração dos dados usando os seletores construídos, e o processamento dessa página para uma determinada finalidade. Algumas formas de extração de dados comuns são o Parser do DOM, Pesquisa de texto com Unix Grep, Google Sheets ou um software específico de Web Scraping.
No entanto, o desenvolvedor afirmou que é importante atentar para alguns pontos específicos antes de executar o Web Scraping, pois esses podem dificultar a correta execução do escaneamento.
Possíveis barreiras no uso do Web Scraping
Construção de seletores dependentes da estrutura HTML da página: nesse caso, quando o código HTML da página é atualizado, o seletor deixa de funcionar. Assim, uma solução é construir seletores parametrizáveis, de modo que, se o site for atualizado, basta acessar o arquivo de configuração e alterar o seletor;
CAPTCHA: é um teste cognitivo, utilizado como ferramenta anti-spam que consiste em diferenciar humanos de robôs e, consequentemente, barrar o acesso de máquinas aos servidores. Desse modo, ele torna-se uma barreira para que o escaneamento Web Scraping seja realizado (visto que o mesmo se trata de um robô). Porém, existem formas de burlar CAPTCHAS mais simples;
Bloqueio de IP: quando o Web Scraping é executado, ele realiza requisições ao servidor no qual a página web está hospedada. Se essas requisições são constantes e em volume significativo, o servidor identifica e bloqueia o robô. Para que isso não ocorra, é preciso definir um tempo randômico em cada requisição, rotacionar IP's (existem proxys específicos para esse fim) e alternar o browser de escaneamento do Web Scraping.
Questões legais quanto à utilização
Antes de executar o Web Scraping, é necessário analisar os termos de uso e examinar quais páginas do site estão disponíveis para escaneamento. Filipe salientou que é possível verificar esse tipo de permissão no arquivo público 'robots.txt', que se encontra na raiz do site – para acessá-lo, utilize a url completa do site com /robots.txt no final. Além disso é importante conferir os termos de uso da página, pois caso a extração de dados viole algum desses, é configurado ato ilegal.