Raspagem da web - Web scraping

Web scraping , web harvesting ou extração de dados da web é o scraping de dados usado para extrair dados de sites . O software de web scraping pode acessar diretamente a World Wide Web usando o protocolo de transferência de hipertexto ou um navegador da web. Embora a web scraping possa ser feita manualmente por um usuário de software, o termo normalmente se refere a processos automatizados implementados usando um bot ou rastreador da web . É uma forma de cópia na qual dados específicos são coletados e copiados da web, normalmente em um banco de dados local central ou planilha, para recuperação ou análise posterior .

A extração de uma página da web envolve buscá-la e extraí-la. Buscar é o download de uma página (que um navegador faz quando um usuário visualiza uma página). Portanto, o rastreamento da web é um componente principal do web scraping, para buscar páginas para processamento posterior. Depois de coletado, a extração pode ocorrer. O conteúdo de uma página pode ser analisado , pesquisado, reformatado, seus dados copiados em uma planilha ou carregados em um banco de dados. Os web scrapers normalmente tiram algo de uma página, para fazer uso dele para outra finalidade em outro lugar. Um exemplo seria localizar e copiar nomes e números de telefone, ou empresas e seus URLs, ou endereços de e-mail para uma lista (coleta de contato).

Web scraping é usado para scraping de contato e como um componente de aplicativos usados ​​para indexação da web , mineração da web e mineração de dados , monitoramento de mudanças de preços online e comparação de preços , análise de produtos (para observar a concorrência), coleta de listagens de imóveis, dados meteorológicos monitoramento, detecção de alteração de site , pesquisa, rastreamento de presença e reputação online, mashup da web e integração de dados 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. Como resultado, ferramentas e softwares especializados foram desenvolvidos para facilitar a remoção de páginas da web.

As formas mais novas de web scraping envolvem o monitoramento de feeds de dados de servidores da web. Por exemplo, JSON é comumente usado como um mecanismo de armazenamento de transporte entre o cliente e o servidor da web.

Existem métodos que alguns sites usam para evitar web scraping, como detectar e impedir que bots rastreiem (visualizem) suas páginas. Em resposta, existem 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 a navegação humana para permitir a coleta de conteúdo da página da web para análise offline.

História

A história da fragmentação da web remonta quase à época em que a World Wide Web nasceu.

  • Após o nascimento da World Wide Web em 1989, o primeiro robô da web, World Wide Web Wanderer , foi criado em junho de 1993, com o objetivo apenas de medir o tamanho da web.
  • Em dezembro de 1993 , foi lançado o primeiro mecanismo de busca na web baseado em crawler , o JumpStation . Como não havia tantos sites disponíveis na web, os mecanismos de pesquisa na época costumavam contar com seus administradores humanos de sites para coletar e editar os links em um formato específico. Em comparação, JumpStation trouxe um novo salto, sendo o primeiro motor de busca WWW que contou com um robô da web.
  • Em 2000, veio o primeiro Web API e rastreador de API . API significa Interface de Programação de Aplicativo . É uma interface que torna muito mais fácil desenvolver um programa, fornecendo os blocos de construção. Em 2000, a Salesforce e o eBay lançaram sua própria API, com a qual os programadores puderam acessar e baixar alguns dos dados disponíveis ao público. Desde então, muitos sites oferecem APIs da web para as pessoas acessarem seu banco de dados público.

Técnicas

Web scraping é o processo de extração automática de dados ou coleta de informações da World Wide Web. É um campo com desenvolvimentos ativos que compartilham um objetivo comum com a visão da web semântica , uma iniciativa ambiciosa que ainda requer avanços no processamento de texto, compreensão semântica, inteligência artificial e interações homem-computador . As soluções atuais de web scraping vão desde o ad-hoc, que exige esforço humano, até sistemas totalmente automatizados que são capazes de converter sites inteiros em informações estruturadas, com limitações.

Copiar e colar manualmente

A forma mais simples de web scraping é copiar e colar manualmente os dados de uma página da web em um arquivo de texto ou planilha. Às vezes, mesmo a melhor tecnologia de web scraping não pode substituir o exame manual de um humano e copiar e colar, e às vezes essa pode ser a única solução viável quando os sites de web scraping configuram explicitamente barreiras para impedir a automação da máquina.

Correspondência de padrão de texto

Uma abordagem simples, mas poderosa, para extrair informações de páginas da web pode ser baseada no comando grep do UNIX ou nos recursos de correspondência de expressão regular de linguagens de programação (por exemplo, Perl ou Python ).

Programação HTTP

Páginas da web estáticas e dinâmicas podem ser recuperadas postando solicitações HTTP para o servidor da web remoto usando programação de soquete .

Análise de HTML

Muitos sites têm grandes coleções de páginas geradas dinamicamente a partir de uma fonte estruturada subjacente, como um banco de dados. Dados da mesma categoria são normalmente codificados em páginas semelhantes por um script ou modelo comum. Na mineração de dados, um programa que detecta esses modelos em uma fonte de informação específica, extrai seu conteúdo e o traduz em uma forma relacional, é chamado de invólucro . Os algoritmos de geração de wrapper assumem que as páginas de entrada de um sistema de indução de wrapper estão em conformidade com um modelo comum e que podem ser facilmente identificadas em termos de um esquema comum de URL. Além disso, algumas linguagens de consulta de dados semiestruturados , como XQuery e o HTQL, podem ser usadas para analisar páginas HTML e para recuperar e transformar o conteúdo da página.

Análise DOM

Ao incorporar um navegador da Web completo, como o Internet Explorer ou o controle de navegador Mozilla , os programas podem recuperar o conteúdo dinâmico gerado por scripts do lado do cliente. Esses controles do navegador também analisam páginas da web em uma árvore DOM, com base na qual os programas podem recuperar partes das páginas. Linguagens como o Xpath podem ser usadas para analisar a árvore DOM resultante.

Agregação vertical

Existem várias empresas que desenvolveram plataformas de colheita específicas verticais. Essas plataformas criam e monitoram uma infinidade de "bots" para verticais específicos sem "man in the loop" (sem envolvimento humano direto) e nenhum trabalho relacionado a um site de destino específico. A preparação envolve estabelecer a base de conhecimento para toda a vertical e, em seguida, a plataforma cria os bots automaticamente. A robustez da plataforma é medida pela qualidade das informações que ela recupera (geralmente o número de campos) e sua escalabilidade (a rapidez com que pode escalar para centenas ou milhares de sites). Essa escalabilidade é usada principalmente para atingir a Cauda Longa de sites que os agregadores comuns consideram complicados ou muito trabalhosos para coletar conteúdo.

Reconhecimento de anotação semântica

As páginas que estão sendo copiadas podem incluir metadados ou marcações semânticas e anotações, que podem ser usadas para localizar fragmentos de dados específicos. Se as anotações forem incorporadas às páginas, como o Microformato faz, essa técnica pode ser vista como um caso especial de análise DOM. Em outro caso, as anotações, organizadas em uma camada semântica, são armazenadas e gerenciadas separadamente das páginas da web, para que os raspadores possam recuperar o esquema de dados e as instruções dessa camada antes de raspar as páginas.

Análise de página da web de visão computacional

Existem esforços usando aprendizado de máquina e visão computacional que tentam identificar e extrair informações de páginas da web interpretando as páginas visualmente como um ser humano faria.

Programas

Existem muitas ferramentas de software disponíveis que podem ser usadas para personalizar soluções de web scraping. Este software pode tentar reconhecer automaticamente a estrutura de dados de uma página ou fornecer uma interface de gravação que elimine a necessidade de escrever manualmente o código de web scraping ou algumas funções de script que podem ser usadas para extrair e transformar conteúdo e interfaces de banco de dados que podem armazenar os dados coletados em bancos de dados locais. Alguns softwares de web scraping também podem ser usados ​​para extrair dados diretamente de uma API.

Questões legais

A legalidade da web scraping varia em todo o mundo. Em geral, web scraping pode ser contra os termos de uso de alguns sites, mas a aplicabilidade desses termos não é clara.

Estados Unidos

Nos Estados Unidos, os proprietários de sites podem usar três ações judiciais importantes para evitar a invasão indesejada da web: (1) violação de direitos autorais (compilação), (2) violação da Lei de Fraude e Abuso de Computador ("CFAA") e (3) invasão para bens móveis . No entanto, a eficácia dessas reivindicações depende do cumprimento de vários critérios, e a jurisprudência ainda está em evolução. Por exemplo, com relação aos direitos autorais, embora a duplicação total da expressão original seja em muitos casos ilegal, nos Estados Unidos os tribunais decidiram em Feist Publications v. Rural Telephone Service que a duplicação de fatos é permitida.

Os tribunais dos EUA reconheceram que os usuários de "raspadores" ou "robôs" podem ser responsabilizados por cometer invasão de bens móveis , o que envolve um sistema de computador sendo considerado propriedade pessoal no qual o usuário de um raspador está invadindo. O mais conhecido desses casos, eBay vs. Bidder's Edge , resultou em uma liminar ordenando que o Bidder's Edge parasse de acessar, coletar e indexar leilões do site do eBay. Este caso envolveu a colocação automática de lances, conhecido como sniping de leilão . No entanto, para ter sucesso em uma reclamação de invasão de bens móveis , o requerente deve demonstrar que o réu intencionalmente e sem autorização interferiu com o interesse possessório do requerente no sistema de computador e que o uso não autorizado do réu causou danos ao requerente. Nem todos os casos de web spidering levados aos tribunais foram considerados invasão de bens móveis.

Um dos primeiros grandes testes de raspagem de tela envolveu a American Airlines (AA) e uma empresa chamada FareChase. AA obteve com sucesso uma liminar de um tribunal do Texas, impedindo o FareChase de vender software que permite aos usuários comparar tarifas online se o software também pesquisar o site de AA. A companhia aérea argumentou que o software de pesquisa na web da FareChase invadiu os servidores de AA ao coletar os dados disponíveis publicamente. O FareChase entrou com um recurso em março de 2003. Em junho, o FareChase e AA concordaram em fazer um acordo e o recurso foi retirado.

A Southwest Airlines também desafiou as práticas de captura de tela e envolveu a FareChase e outra empresa, Outtask, em uma ação judicial. A Southwest Airlines alegou que a captura de tela é ilegal, pois é um exemplo de "fraude e abuso de computador" e levou a "danos e perdas" e "acesso não autorizado" ao site da Southwest. Também constitui "Interferência com Relações Comerciais", "Invasão" e "Acesso Prejudicial por Computador". Eles também alegaram que a captura de tela constitui o que é legalmente conhecido como "Apropriação indevida e enriquecimento injusto", além de ser uma violação do contrato de usuário do site. Outtask negou todas essas reivindicações, alegando que a lei vigente, neste caso, deveria ser a lei de direitos autorais dos Estados Unidos e que, sob os direitos autorais, as informações que estão sendo copiadas não estariam sujeitas à proteção de direitos autorais. Embora os casos nunca tenham sido resolvidos na Suprema Corte dos Estados Unidos , o FareChase acabou sendo encerrado pela controladora Yahoo! e Outtask foi adquirido pela empresa de despesas de viagens Concur. Em 2012, uma startup chamada 3Taps eliminou os anúncios classificados de habitação do Craigslist. O Craigslist enviou à 3Taps uma carta de cessar-e-desistir e bloqueou seus endereços IP e mais tarde processou, no Craigslist v. 3Taps . O tribunal considerou que a carta de cessar e desistir e o bloqueio de IP foram suficientes para o Craigslist alegar corretamente que a 3Taps violou a Lei de Fraude e Abuso de Computador .

Embora essas sejam decisões precoces e as teorias de responsabilidade não sejam uniformes, é difícil ignorar um padrão emergente de que os tribunais estão preparados para proteger o conteúdo proprietário em sites comerciais de usos indesejáveis ​​para os proprietários de tais sites. No entanto, o grau de proteção de tal conteúdo não é estabelecido e dependerá do tipo de acesso feito pelo scraper, da quantidade de informações acessadas e copiadas, o grau em que o acesso afeta negativamente o sistema do proprietário do site e os tipos e formas de proibições sobre tal conduta.

Enquanto a lei nesta área se torna mais estabelecida, as entidades que contemplam o uso de programas de scraping para acessar um site público também devem considerar se tal ação é autorizada revisando os termos de uso e outros termos ou avisos publicados ou disponibilizados através do site. Em uma decisão de 2010 em Cvent, Inc. v. Eventbrite, Inc. No tribunal distrital dos Estados Unidos para o distrito oriental da Virgínia, o tribunal decidiu que os termos de uso deveriam ser levados ao conhecimento dos usuários para uma navegação pacote de contrato ou licença a ser aplicada. Em um caso de 2014, movido no Tribunal Distrital dos Estados Unidos para o Distrito Leste da Pensilvânia , o site de e-commerce QVC se opôs à raspagem do site do QVC do agregador de compras Resultly do tipo Pinterest para dados de preços em tempo real. O QVC alega que Resultly "rastreou excessivamente" o site de varejo do QVC (supostamente enviando 200-300 solicitações de pesquisa ao site do QVC por minuto, às vezes até 36.000 solicitações por minuto), o que fez o site do QVC travar por dois dias, resultando em vendas perdidas para o QVC . A reclamação do QVC alega que o réu disfarçou seu rastreador da web para mascarar seu endereço IP de origem e, assim, impediu o QVC de reparar o problema rapidamente. Este é um caso de raspagem particularmente interessante porque a QVC está buscando indenização pela indisponibilidade de seu site, que a QVC alega ter sido causada pela Resultly.

No site do reclamante durante o período deste julgamento, o link dos termos de uso é exibido entre todos os links do site, na parte inferior da página como a maioria dos sites da internet. Esta decisão contradiz a regra irlandesa descrita abaixo. O tribunal também rejeitou o argumento do querelante de que as restrições de navegação foram executáveis ​​em vista da adoção pela Virgínia do Ato Uniforme de Transações de Informações de Computador (UCITA) - uma lei uniforme que muitos acreditavam ser a favor de práticas comuns de contratação de navegação.

Em Facebook, Inc. v. Power Ventures, Inc. , um tribunal distrital decidiu em 2012 que a Power Ventures não poderia raspar páginas do Facebook em nome de um usuário do Facebook. O caso está em apelação, e a Electronic Frontier Foundation entrou com uma petição em 2015 pedindo que seja anulado. Em Associated Press v. Meltwater US Holdings, Inc. , um tribunal nos Estados Unidos considerou Meltwater responsável por extrair e republicar informações de notícias da Associated Press, mas um tribunal no Reino Unido decidiu a favor de Meltwater.

O Internet Archive coleta e distribui um número significativo de páginas da web disponíveis publicamente sem ser considerado uma violação das leis de direitos autorais.

União Européia

Em fevereiro de 2006, o Tribunal Marítimo e Comercial dinamarquês (Copenhague) determinou que o rastreamento sistemático, a indexação e a vinculação profunda pelo site ofir.dk do site de imóveis Home.dk não entram em conflito com a lei dinamarquesa ou com a diretiva de banco de dados da União Europeia.

Em um caso de fevereiro de 2010 complicado por questões de jurisdição, o Supremo Tribunal da Irlanda emitiu um veredicto que ilustra o estado incipiente da jurisprudência em desenvolvimento. No caso Ryanair Ltd contra Billigfluege.de GmbH , o Supremo Tribunal da Irlanda considerou o acordo " click-wrap " da Ryanair juridicamente vinculativo. Em contraste com as conclusões do Tribunal Distrital dos Estados Unidos do Distrito Oriental da Virgínia e do Tribunal Marítimo e Comercial dinamarquês, o juiz Michael Hanna determinou que o hiperlink para os termos e condições da Ryanair era claramente visível e que colocava o ônus sobre o usuário concordar com os termos e condições para obter acesso aos serviços online é suficiente para incluir uma relação contratual. A decisão está sendo apelada no Supremo Tribunal da Irlanda.

Em 30 de abril de 2020, a Autoridade Francesa de Proteção de Dados (CNIL) lançou novas diretrizes sobre web scraping. As diretrizes da CNIL deixaram claro que os dados publicamente disponíveis ainda são dados pessoais e não podem ser reaproveitados sem o conhecimento da pessoa a quem esses dados pertencem.

Austrália

Na Austrália, o Spam Act 2003 proíbe algumas formas de coleta na web, embora isso se aplique apenas a endereços de e-mail.

Índia

Deixando alguns casos que tratam de violação de DPI, os tribunais indianos não se pronunciaram expressamente sobre a legalidade da web scraping. No entanto, uma vez que todas as formas comuns de contratos eletrônicos são aplicáveis ​​na Índia, violar os termos de uso que proíbem a extração de dados será uma violação da lei contratual. Também violará a Lei de Tecnologia da Informação de 2000 , que penaliza o acesso não autorizado a um recurso de computador ou a extração de dados de um recurso de computador.

Métodos para evitar web scraping

O administrador de um site pode usar várias medidas para interromper ou desacelerar um bot. Algumas técnicas incluem:

  • Bloquear um endereço IP manualmente ou com base em critérios como geolocalização e DNSRBL . Isso também bloqueará toda a navegação desse endereço.
  • Desativar qualquer API de serviço da web que o sistema do site possa expor.
  • Às vezes, os bots declaram quem são (usando strings de agente do usuário ) e podem ser bloqueados com base no arquivo robots.txt ; ' googlebot ' é um exemplo. Outros bots não fazem distinção entre eles e um humano que usa um navegador.
  • Os bots podem ser bloqueados monitorando o excesso de tráfego
  • Às vezes, os bots podem ser bloqueados com ferramentas para verificar se é uma pessoa real acessando o site, como um CAPTCHA . Os bots às vezes são codificados para quebrar explicitamente padrões CAPTCHA específicos ou podem empregar serviços de terceiros que utilizam trabalho humano para ler e responder em tempo real aos desafios do CAPTCHA.
  • Serviços comerciais anti-bot: as empresas oferecem serviços anti-bot e anti-scraping para websites. Alguns firewalls de aplicativos da web também têm recursos de detecção de bot limitados. No entanto, muitas dessas soluções não são muito eficazes.
  • Localizar bots com um honeypot ou outro método para identificar os endereços IP de rastreadores automatizados.
  • Ofuscação usando sprites CSS para exibir dados como números de telefone ou endereços de e-mail, ao custo da acessibilidade aos usuários de leitores de tela .
  • Como os bots dependem da consistência no código de front-end de um site de destino, adicionar pequenas variações ao HTML / CSS em torno de dados importantes e elementos de navegação exigiria um envolvimento mais humano na configuração inicial de um bot e, se feito de forma eficaz, pode processar o o site de destino é muito difícil de raspar devido à capacidade reduzida de automatizar o processo de varredura.
  • Os sites podem declarar se o rastreamento é permitido ou não no arquivo robots.txt e permitir acesso parcial, limitar a taxa de rastreamento, especificar o momento ideal para rastreamento e muito mais.

Veja também

Referências