Extração de dados - Data scraping

A extração de dados é uma técnica em que um programa de computador extrai dados de uma saída legível por humanos proveniente de outro programa.

Descrição

Normalmente, a transferência de dados entre programas é realizada usando estruturas de dados adequadas para processamento automatizado por computadores , não por pessoas. Esses formatos e protocolos de intercâmbio são tipicamente estruturados de forma rígida, bem documentados, facilmente analisados e minimizam a ambiguidade. Muitas vezes, essas transmissões não são legíveis por humanos.

Assim, o elemento-chave que distingue a coleta de dados da análise regular é que a saída que está sendo coletada se destina a ser exibida para um usuário final , em vez de uma entrada para outro programa. Portanto, geralmente não é documentado nem estruturado para análise conveniente. A extração de dados geralmente envolve ignorar dados binários (geralmente imagens ou dados multimídia), formatação de exibição , rótulos redundantes, comentários supérfluos e outras informações que são irrelevantes ou dificultam o processamento automatizado.

A coleta de dados geralmente é feita para fazer a interface com um sistema legado , que não tem nenhum outro mecanismo compatível com o hardware atual , ou para fazer a interface com um sistema de terceiros que não fornece uma API mais conveniente . No segundo caso, o operador do sistema de terceiros frequentemente verá a captura de tela como indesejada, devido a motivos como aumento da carga do sistema , perda de receita de publicidade ou perda de controle do conteúdo da informação.

A coleta de dados é geralmente considerada uma técnica ad hoc e deselegante, freqüentemente usada apenas como um "último recurso" quando nenhum outro mecanismo de intercâmbio de dados está disponível. Além da maior sobrecarga de programação e processamento, as exibições de saída destinadas ao consumo humano geralmente mudam de estrutura com frequência. Os humanos podem lidar com isso facilmente, mas um programa de computador falhará. Dependendo da qualidade e da extensão da lógica de tratamento de erros presente no computador, essa falha pode resultar em mensagens de erro, saída corrompida ou até mesmo travamentos do programa .

Variantes técnicas

Captura de tela

Um fragmento de tela e uma interface de captura de tela (caixa azul com seta vermelha) para personalizar o processo de captura de dados.

Embora o uso do " terminal burro " físico IBM 3270s esteja diminuindo lentamente, à medida que mais e mais aplicativos de mainframe adquirem interfaces da Web , alguns aplicativos da Web simplesmente continuam a usar a técnica de raspagem de tela para capturar telas antigas e transferir os dados para front-ends modernos .

A captura de tela normalmente está associada à coleta programática de dados visuais de uma fonte, em vez de analisar os dados como na web scraping. Originalmente, a captura de tela se referia à prática de ler dados de texto da tela de um terminal de vídeo de computador . Isso geralmente era feito lendo a memória do terminal por meio de sua porta auxiliar ou conectando a porta de saída do terminal de um sistema de computador a uma porta de entrada em outro. O termo captura de tela também é comumente usado para se referir à troca bidirecional de dados. Podem ser os casos simples em que o programa de controle navega pela interface do usuário ou cenários mais complexos em que o programa de controle está inserindo dados em uma interface destinada a ser usada por um ser humano.

Como um exemplo concreto de um raspador de tela clássico, considere um sistema legado hipotético que data da década de 1960 - o alvorecer do processamento de dados computadorizado . As interfaces de computador para usuário daquela época eram simplesmente terminais burros baseados em texto, que não eram muito mais do que teleimpressoras virtuais (tais sistemas ainda estão em uso hoje, por várias razões). O desejo de fazer a interface de tal sistema com sistemas mais modernos é comum. Uma solução robusta geralmente exigirá coisas que não estão mais disponíveis, como código-fonte , documentação do sistema , APIs ou programadores com experiência em um sistema de computador com 50 anos de idade. Nesses casos, a única solução viável pode ser escrever um raspador de tela que "finge" ser um usuário em um terminal. O raspador de tela pode se conectar ao sistema legado via Telnet , emular as teclas necessárias para navegar na interface do usuário antiga, processar a saída de exibição resultante, extrair os dados desejados e passá-los para o sistema moderno. Uma implementação sofisticada e resiliente desse tipo, construída em uma plataforma que fornece a governança e o controle exigidos por uma grande empresa - por exemplo, controle de mudanças, segurança, gerenciamento de usuários, proteção de dados, auditoria operacional, balanceamento de carga e gerenciamento de filas, etc. - poderia ser considerado um exemplo de software de automação de processos robóticos , denominado RPA ou RPAAI para RPA 2.0 autoguiado baseado em inteligência artificial .

Na década de 1980, provedores de dados financeiros como Reuters , Telerate e Quotron exibiam dados no formato 24 × 80 destinados a um leitor humano. Os usuários desses dados, principalmente bancos de investimento , escreveram aplicativos para capturar e converter esses dados de caracteres como dados numéricos para inclusão em cálculos para decisões de negociação sem redigitar os dados. O termo comum para essa prática, especialmente no Reino Unido , era desfibramento de página , pois os resultados poderiam ter passado por uma trituradora de papel . Internamente, a Reuters usou o termo "lógico" para esse processo de conversão, executando um sofisticado sistema de computador em VAX / VMS chamado Logicizer.

As técnicas de captura de tela mais modernas incluem capturar os dados de bitmap da tela e executá-los por meio de um mecanismo de OCR ou, para alguns sistemas de teste automatizados especializados, comparando os dados de bitmap da tela com os resultados esperados. Isso pode ser combinado no caso de aplicativos GUI , com a consulta aos controles gráficos, obtendo referências de forma programática a seus objetos de programação subjacentes . Uma sequência de telas é automaticamente capturada e convertida em um banco de dados.

Outra adaptação moderna a essas técnicas é usar, em vez de uma sequência de telas como entrada, um conjunto de imagens ou arquivos PDF, de modo que haja algumas sobreposições com técnicas genéricas de " extração de documentos" e mineração de relatórios .

Existem muitas ferramentas que podem ser usadas para a captura de tela.

Raspagem da web

As páginas da Web são construídas usando linguagens de marcação baseadas em texto ( HTML e XHTML ) e freqüentemente contêm uma grande quantidade de dados úteis na forma de texto. No entanto, a maioria das páginas da web são projetadas para usuários finais humanos e não para facilidade de uso automatizado. Por causa disso, kits de ferramentas que raspam o conteúdo da web foram criados. Um raspador da web é uma API ou ferramenta para extrair dados de um site. Empresas como Amazon AWS e Google fornecem ferramentas de web scraping , serviços e dados públicos disponíveis gratuitamente para os usuários finais. As novas formas de web scraping envolvem ouvir feeds de dados de servidores web. Por exemplo, JSON é comumente usado como um mecanismo de armazenamento de transporte entre o cliente e o servidor da web.

Recentemente, as empresas desenvolveram sistemas de web scraping que contam com o uso de técnicas de análise DOM , visão computacional e processamento de linguagem natural para simular o processamento humano que ocorre ao visualizar uma página da web para extrair automaticamente informações úteis.

Grandes sites geralmente usam algoritmos defensivos para proteger seus dados de web scrapers e para limitar o número de solicitações que um IP ou rede IP pode enviar. Isso causou uma batalha contínua entre desenvolvedores de sites e desenvolvedores de scraping.

Mineração de relatórios

Mineração de relatórios é a extração de dados de relatórios de computador legíveis por humanos. A extração de dados convencional requer uma conexão com um sistema de origem em funcionamento, padrões de conectividade adequados ou uma API e, geralmente, consultas complexas. Usando as opções de relatório padrão do sistema de origem e direcionando a saída para um arquivo de spool em vez de para uma impressora , relatórios estáticos podem ser gerados adequados para análise offline por meio de mineração de relatório. Essa abordagem pode evitar o uso intensivo da CPU durante o horário comercial, pode minimizar os custos de licença do usuário final para clientes de ERP e pode oferecer prototipagem e desenvolvimento muito rápidos de relatórios personalizados. Enquanto a extração de dados e a extração da web envolvem a interação com a saída dinâmica, a mineração de relatórios envolve a extração de dados de arquivos em um formato legível, como HTML , PDF ou texto. Eles podem ser facilmente gerados a partir de quase qualquer sistema, interceptando a alimentação de dados para uma impressora. Essa abordagem pode fornecer uma rota rápida e simples para obter dados sem a necessidade de programar uma API para o sistema de origem.

Veja também

Referências

Leitura adicional

  • Hemenway, Kevin e Calishain, Tara. Hacks de aranha . Cambridge, Massachusetts: O'Reilly, 2003. ISBN  0-596-00577-6 .