semisatch - stock.adobe.com

A raspagem da web com IA aumenta a coleta de dados

A raspagem de dados da web automatiza o processo de coleta de dados e refina o pipeline de dados, mas para escolher as ferramentas, linguagens e programas certos requer atenção e cuidado.

A raspagem de dados da web existe há quase tanto tempo quanto existe a web para raspar. Esta tecnologia forma a base de serviços de busca como Google e Bing e pode extrair grandes quantidades de dados.

A coleta de dados na web, ou web scraping, tende a depender de como ela é apresentada, e muitos sites desencorajam ativamente a raspagem da web. No entanto, desenvolvedores podem criar aplicativos de extração da web em linguagens como Python ou Java para ajudar a trazer dados para vários aplicativos de inteligência artificial ou (IA). É crucial que os desenvolvedores pensem cuidadosamente sobre os pipelines usados para adquirir seus dados. Cada etapa desse processo - obter os dados corretos, limpá-los e organizá-los no formato apropriado para suas necessidades - deve ser revisada.

Esses pipelines são um trabalho contínuo em andamento. O pipeline de raspagem da Web perfeito para hoje pode ter que ser completamente reformulado para amanhã. Sabendo disso, há uma variedade de ferramentas e práticas recomendadas que podem ajudar a automatizar e refinar esses pipelines e manter as organizações no caminho certo.

Aplicativos de raspagem da web e IA

A raspagem da web envolve a criação de um robô de software que pode coletar dados automaticamente de várias páginas da web. Bots simples podem fazer este trabalho, mas bots mais sofisticados usam IA para encontrar os dados apropriados em uma página e copiá-los para o campo de dados apropriado para serem processados por um aplicativo analítico.

Os casos de uso baseados em web scraping de IA incluem comércio eletrônico, pesquisa de mão de obra, análise da cadeia de suprimentos, captura de dados corporativos e pesquisa de mercado, disse Sarah Petrova, cofundadora da Techtestreport. Esses tipos de aplicativos dependem fortemente de dados e da distribuição de dados de diferentes partes. Aplicativos comerciais usam web scraping para fazer análises de sentimento sobre lançamentos de novos produtos, organizar conjuntos de dados estruturados sobre empresas e produtos, simplificar a integração de processos de negócios e coletar dados de forma preditiva.

Um projeto específico de web scraping inclui a curadoria de dados de linguagem para modelos de processamento de linguagem natural (NLP) diferentes do inglês ou a captura de estatísticas esportivas para a construção de novos modelos de IA para análise de esportes de fantasia. Burak Özdemir, um desenvolvedor web baseado na Turquia, usou raspagem de dados da web para construir um modelo de rede neural para tarefas de PNL em turco.

"Embora existam tantos modelos pré-treinados que podem ser encontrados online para o inglês, é muito mais difícil encontrar um conjunto de dados decente para outros idiomas", disse Özdemir. Ele tem experimentado raspar a Wikipedia e outras plataformas que têm texto estruturado para treinar e testar seus modelos - e seu trabalho pode fornecer uma estrutura para outras pessoas que procuram desenvolver e treinar PNL em idiomas diferentes do inglês.

Ferramentas de raspagem da web

Há uma variedade de ferramentas e bibliotecas que os desenvolvedores podem usar para iniciar seus projetos de raspagem na web. Principalmente, o Python possui tecnologia de raspagem da Web prontamente disponível por meio de bibliotecas online.

Python desempenha um papel significativo no desenvolvimento de IA com foco em web scraping, disse Petrova. A especialista recomenda considerar bibliotecas como Beautiful Soup, lxml, MechanicalSoup, Python Requests, Scrapy, Selenium e urllib.

Cada ferramenta tem sua própria força e muitas vezes podem se complementar. Por exemplo, Scrapy é uma estrutura colaborativa e de código aberto para extrair dados úteis para mineração de dados, monitoramento e testes automatizados. Beautiful Soup é uma biblioteca Python para extrair dados de arquivos HTML e XML. Petrova disse que o implanta para modelar scripts de raspagem, pois a biblioteca fornece métodos simples e idiomas Pythonic para navegar, pesquisar e modificar uma árvore de análise.

Aumentando dados com web scraping

Os algoritmos de IA geralmente são desenvolvidos no front-end para saber quais seções de uma página da Web contêm campos como dados do produto, revisão ou preço. Petrova observa que combinando web scraping com IA, o processo de aumento de dados pode se tornar mais eficiente.

"A raspagem da web, especialmente com soluções inteligentes, orientadas por IA, extração de dados, limpeza, normalização e agregação, pode reduzir significativamente a quantidade de tempo e recursos que as organizações precisam investir na coleta e preparação de dados em relação ao desenvolvimento e entrega da solução", disse Julia Wiedmann, engenheira de pesquisa de aprendizado de máquina, no Diffbot, um serviço estruturado de pesquisa na web.

Petrova disse que as técnicas comuns de aumento de dados incluem:

  • extrapolação (campos relevantes são atualizados ou fornecidos com valores);
  • marcação (registros comuns são marcados para um grupo, facilitando a compreensão e diferenciação para aquele grupo);
  • agregação (usando valores matemáticos de médias –os valores são estimados para campos relevantes, se necessário); e
  • técnicas de probabilidade (baseados em heurística e estatísticas analíticas –os valores são preenchidos com base na probabilidade de eventos).

Usando IA para uma raspagem resiliente

Sites são criados para serem lidos por humanos e não por máquinas, o que dificulta a extração em escala e em diferentes layouts de página. Qualquer um que tenha tentado agregar e manter dados sabe como isso pode ser uma tarefa difícil –seja um banco de dados compilado manualmente com erros de digitação, campos ausentes e duplicados ou a variabilidade das práticas de publicação de conteúdo online, disse Wiedmann.

A equipe de Wiedmann desenvolveu algoritmos de IA que usam as mesmas pistas de um ser humano para detectar informações que devem ser extraídas. Ela também descobriu que é importante integrar primeiro os resultados em pesquisa aplicada ou ambientes de teste. Pode haver variabilidade oculta vinculada às práticas de publicação das fontes. Rotinas de garantia de qualidade de dados podem ajudar a minimizar a manutenção manual de dados.

"Projetar sistemas que minimizem a quantidade de manutenção manual reduzirá erros e uso indevido de dados", disse Wiedmann.

Melhorando a estrutura de dados

A IA também pode estruturar os dados coletados com a raspagem da web para melhorar a maneira como eles podem ser usados por outros aplicativos.

“Embora a raspagem da web já exista há muito tempo, o uso de IA para extração da web mudou o jogo”, disse Sayid Shabeer, diretor de produto da HighRadius, uma empresa de software de IA.

A extração tradicional da web não pode extrair dados estruturados de documentos não estruturados automaticamente, mas avanços recentes criaram algoritmos de IA que funcionam na extração de dados de maneira semelhante aos humanos e que continuam a aprender também. A equipe de Shabeer usou esses tipos de bots para extrair informações de remessa para aplicações de valores monetários por parceiros varejistas. O mecanismo de agregação da web faz login regularmente nos sites dos varejistas e procura informações sobre remessas. Uma vez disponibilizadas as informações, os agentes virtuais captam automaticamente os dados da remessa e os disponibilizam em formato digital.

A partir daí, um conjunto de regras pode ser aplicado para aprimorar ainda mais a qualidade dos dados e agrupá-los com as informações de pagamento. Os modelos de IA permitem que os bots dominem uma variedade de tarefas, em vez de focar em apenas um processo.

Para construir esses bots, a equipe de Shabeer reuniu os nomes de classe comuns e tags HTML que são usados em vários sites de varejistas e os alimentou no mecanismo de IA. Isso foi usado como dados de treinamento para garantir que o mecanismo de IA pudesse lidar com quaisquer novos portais de varejistas que fossem adicionados com mínima ou nenhuma intervenção manual. Com o tempo, o mecanismo tornou-se cada vez mais capaz de extrair dados sem nenhuma intervenção.

Limitações da web scraping

Em um caso recente em que o LinkedIn tentou impedir que o HiQ Labs extraísse seus dados para fins de análise, a Suprema Corte dos EUA decidiu que a extração da web para análise e IA pode ser legal. No entanto, ainda existem várias maneiras pelas quais os sites podem quebrar não intencionalmente ou acidentalmente os aplicativos de raspagem da web.

Petrova disse que algumas das limitações comuns que ela encontrou incluem:

  • Raspagem em escala. A extração de dados de uma única página é simples, mas há desafios na extração de milhões de sites, como o gerenciamento da base de código, a coleta de dados e a manutenção de um data warehouse.
  • Mudanças de padrão. Cada site muda periodicamente sua interface de usuário.
  • Tecnologias anti-raspagem. Alguns sites usam tecnologias anti-raspagem.
  • Conteúdo dinâmico baseado em JavaScript. Sites que dependem muito de JavaScript e Ajax para renderizar conteúdo dinâmico dificultam a extração de dados.
  • Armadilhas de pote de mel. Alguns designers de sites colocam armadilhas de pote mel (ou honeypot) dentro de sites para detectar web spiders e fornecer informações falsas. Isso pode envolver a geração de links que os usuários normais não podem ver, mas os rastreadores podem.
  • Qualidade dos dados. Os registros que não atendem às diretrizes de qualidade afetarão a integridade geral dos dados.

Navegador x back-end

A raspagem da Web geralmente é feita por um navegador sem cabeça que pode vasculhar páginas da Web independentemente de qualquer atividade humana. No entanto, existem complementos AI chatbot que extraem dados como um processo em segundo plano em execução no navegador que pode ajudar os usuários a encontrar novas informações. Esses programas front-end usam IA para decidir como comunicar as informações apropriadas a um usuário.

Marc Sloan, cofundador e CEO da Scout, um chatbot de web scraping de IA, disse que originalmente fez isso usando um navegador sem cabeça em Python que puxava o conteúdo da página da web por meio de uma rede de proxies. A informação foi extraída do conteúdo usando uma variedade de técnicas. Sloan e sua equipe usaram o Spacy para extrair entidades e relações de texto não estruturado em gráficos de conhecimento usando o Neo4j. Redes convolucionais foram usadas para identificar recursos como tipo de sessão, similaridade de sessão e endpoints de sessão.

Desde então, Sloan e seu time moveram o processamento para o próprio navegador do usuário rodando em JavaScript para preservar a privacidade. E para funcionar melhor no navegador, eles simplificaram os modelos de dados. Sloan disse acreditar que este é apenas o começo. O desenvolvimento de diferentes tipos de agentes de IA executados localmente para ajudar as pessoas a automatizar suas interações com vários sites só deve aumentar no futuro.

Saiba mais sobre Big data e gerenciamento de informações