Saltar para o conteúdo

Web scraping

Origem: Wikipédia, a enciclopédia livre.

A coleta de dados web, ou raspagem web, é uma forma de mineração que permite a extração de dados de sites da web convertendo-os em informação estruturada para posterior análise. É um campo com ativa evolução que compartilha 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 semantical, inteligência artificial e interação homem-computador. A coleta de dados web é muito semelhante à indexação web (utilizado pela maioria dos motores de busca), mas a motivação final é muito diferente. A indexação web é usada para ajudar a tornar os motores de busca mais eficientes, já a coleta de dados é tipicamente usada para diferentes razões, como comparação de preços online, monitoramentos meteorológicos, pesquisas de mercado, monitoramento de dados e, em alguns casos, roubo.

Motivação

Cada vez mais a tecnologia nos traz benefícios, nos dias atuais os negócios estão extremamente tecnológicos, sempre buscando por melhorias e reduzindo gastos de tempo e dinheiro. Para se extrair alguns dados de web sites de maneira manual, ou seja copiando e colando, muito esforço será necessário e muito tempo será perdido. Com o uso automatizado da coleta de dados web essa prática poupará tempo, esforço e por consequência dinheiro. Existem diversas motivações para se praticar a coleta de dados web. Algumas pessoas realizam a coleta para arquivar informações de um website para poder se ter acesso offline ao mesmo posteriormente, outras utilizam a técnica para testar seu próprio website em busca de links quebrados e infelizmente existem casos de uso desonesto, como por exemplo cópias ilegais de conteúdo.

Funcionamento

Processo do funcionamento da coleta de dados web

Os scripts e aplicativos de coleta de dados vão simular uma pessoa navegando normalmente em um site através de um navegador. Com estes scripts/softwares o usuário pode se conectar a um site e solicitar uma página, exatamente como um navegador faia. O servidor web irá enviar de volta a página requisitada e então, os coletores processam as páginas de dados não estruturados ou semiestruturados dos sites de escolha do usuário e convertem os dados em um formato estruturado. Uma vez que os dados estão em um formato estruturado, o usuário pode manipula-los e analisa-los com facilidade.

Alternativas

Existem algumas alternativas para se fazer a coleta de dados web, como

Alternativa Definição Prós Contras
Usar um serviço online de coleta Existe serviços que realizam a extração dos dados da web que não necessitam ser baixados e funcionam online Tem a vantagem de extrair os dados do site de maneira automatizada, com algumas exceções onde o usuário precisa definir regras para começar a extração. Possui a vantagem de não exigir conhecimentos técnicos avançados Serviço com funcionalidades limitadas
Usar um software para a coleta É possível utilizar softwares de desktop ou até mesmo extensões de browsers, como o Mozilla Firefox e o Google Chrome, para realizar a extração dos dados Possui a mesma facilidade de uso que os serviços online mas oferece maior flexibilidade para se obter os dados É uma alternativa para processos mais manuais, não automatizados. Possuem chances de serem bloqueados pelo website onde está sendo coletado os dados
Programar seu próprio algoritmo de coleta É possível escrever um algoritmo de coleta em diversas linguagens de programação Oferta maior flexibilidade que as outras duas alternativas pois é possível criar uma extração completamente adaptável as necessidades do usuário Requer um alto nível de conhecimento e manutenção constante para o software, o que requer tempo e dinheiro

Coletas maliciosas e aspectos legais

A prática da coleta de dados web tem atraído muita controvérsia porque os termos de uso para alguns sites não permitem certos tipos de mineração de dados. A coleta maliciosa é um roubo sistemático da propriedade intelectual na forma de dados acessíveis em um website. Infelizmente, algumas pessoas não se preocupam com termos e condições e extraem sistematicamente grandes quantidades de dados para ganho pessoal sem que tenha permissão para isso. Alguns exemplos de coletas maliciosas são:

  • Coleta de endereços de e-mail
  • Obtenção de perfis de usuários em redes sociais ou fóruns
  • Detecção de atualizações em sites da concorrência
  • Plágio de conteúdos, tais como notícias, artigos, blogs, informações médicas, informações financeiras, etc

Como um exemplo real, no Brasil, podemos citar o caso de uma empresa de recrutamento online acusada e condenada por concorrência desleal ao coletar dados de clientes de outra empresa. Portanto, além de estar ciente de todos os aspectos legais do site que se quer realizar a extração é importante estar atento para não violar nenhuma das seguintes questões:

Apesar dos desafios legais, essa técnica promete tornar-se uma maneira popular de coleta de informações.

Medidas restritivas à coleta

Evitar os ataques e coletas indevidas está cada vez mais difícil pois é complicado distinguir os coletores de usuários legítimos, mas é possível tomar algumas medidas para impedir ou diminuir esses ataques, como:

  • Bloquear IP's que possuam excesso de tráfego, estabelecendo limites de requisições de página e conexões
  • Bloquear fontes maliciosas já conhecidas
  • Utilizar CAPTCHAS para ter certeza que o usuário é uma pessoa
  • Utilizar cookies ou JavaScript, pois geralmente os softwares de coleta não processam esse tipo de código
  • Utilizar imagens ou conteúdo flash no website, já que as coletas extraem dados em formato de texto
  • Atualizar constantemente as tags HTML das páginas web

Exemplos de ferramentas de coleta

  • Apache Camel
  • Archive.is
  • Automation Anywhere
  • Convertigo
  • cURL
  • Data Toolbar
  • Diffbot
  • Firebug 2.23
  • Greasemonkey
  • Heritrix
  • HtmlUnit
  • HTTrack
  • iMacros
  • Import.io
  • Jaxer
  • Node.js
  • nokogiri
  • OutWit Hub
  • PhantomJS
  • ScraperWiki
  • Scrapy
  • Selenium
  • SimpleTest
  • UiPath
  • watir
  • Wget
  • Wireshark
  • WSO2 Mashup Server
  • Yahoo! Query Language (YQL)

Ver também

Referências

  1. HTML Scraping Consultado em 06/07/16
  2. Web Crawling: Data Scraping vs. Data Crawling Consultado em 06/07/16
  3. Data Scraping: Introdução à técnica de extração de dados web Consultado em 05/07/1016
  4. Scrapers e Crawlings: Robôs da internet e suas utilidades Consultado em 05/07/16
  5. Web data extraction Consultado em 06/07/16
  6. Alternativas para realizar web scraping Consultado em 06/07/16
  7. Web Scraping Definition Consultado em 06/07/16
  8. Web Scraping Consultado em 07/07/16
  9. Scraping defined (also data scraping, web scraping or screen scraping) Consultado em 05/07/16
  10. Coleta de dados na internet ainda precisa ser mais debatida no Brasil Consultado em 07/07/16
  11. Cómo evitar que alguien se apropie de los contenidos de nuestra página web Consultado em 07/07/16
  12. Scraping definition Consultado em 05/07/16
  13. Web Scraping - Data Collection or Illegal Activity? Consultado em 07/07/16
  14. IMPERVA, ‘Detecting and Blocking Site Scraping Attacks’ - http://www.imperva.com/docs/wp_detecting_and_blocking_site_scraping_attacks.pdf (2014)
  15. M. P. Katia, I. T. Maria - 'COLETA DE DADOS EM PLATAFORMAS DE REDES SOCIAIS: ESTUDO DE APLICATIVOS' http://rabci.org/rabci/sites/default/files/222-838-1-PB_0.pdf - III WPCI (2014)