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, coleta de dados governamentais, monitoramento de dados e, em alguns casos, roubo.

Motivação

Cada vez mais a tecnologia nos traz benefícios e nos dias atuais os negócios estão extremamente tecnológicos, sempre buscando por melhorias e reduzindo gastos de tempo e dinheiro. Muitas vezes o acesso aos dados não é fácil. Por mais que a gente desejasse que tudo estivesse disponível no formato da nossa preferência, dados são divulgados de forma diferente na internet. E se você quiser combiná-los com outros dados ou explorá-los de maneira independente? Para se extrair alguns dados de websites 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. Alguns exemplos do uso da coleta de dados são:

  • O comércio eletrônico usa a coleta de dados para monitorar os preços de empresas concorrentes
  • Advogados utilizam para ver relatórios de julgamentos passados para referências futuras
  • Recrutadores utilizam para coletar perfis de pessoas
  • Empresas de mídia utilizam para avaliar conteúdos de trend topics e hashtags para coletar informações
  • Jornalistas utilizam para recolher informações sobre acontecimentos para facilitar as reportagens

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 faria. O servidor web irá enviar de volta a página requisitada e então os coletores processam as páginas de dados, que são não estruturadas ou semiestruturadas, 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:

Medida Descrição
Bloquear IP's que possuam excesso de tráfego Scripts de coleta de dados fazem requisições com muito mais rapidez que pessoas. Limitando o acesso a IP's que possuem vários pedidos em um curto espaço de tempo pode evitar o problema
Bloquear fontes maliciosas já conhecidas É sempre bom manter uma lista de controle no Firewall para se ter uma base de proteção, já que alguns scripts utilizam botnets e nós Tor para encobrir sua verdadeira localização e identidade. Ao se conhecer alguns destes botnets ou nós Tor é muito importante os colocar na lista negra do Firewall
Utilizar CAPTCHA Este tem sido o método mais comumente utilizado porque é simples de integrar e pode ser eficaz, pelo menos no início. O problema é que o CAPTCHA pode ser burlado com um pouco de trabalho e, mais importante, eles são um incômodo para os usuários, podendo afasta-los
Utilizar Cookies ou JavaScript Geralmente os softwares de coleta não são capazes de processar esse tipo de código, evitando a extração dos dados
Utilizar imagens ou conteúdo flash no website As coletas extraem dados em formato de texto, logo, ter conteúdo em um formato diferente dificultaria a extração das informações
Atualizar constantemente as tags HTML das páginas web Desse modo seria necessário a atualização constante dos scripts de coleta para se obter os dados de maneira correta

Exemplos de ferramentas de coleta

  • Apache Camel
  • Archive.is
  • Automation Anywhere
  • Convertigo
  • cURL
  • Data Toolbar
  • Diffbot
  • Firebug 2.23
  • FMiner
  • Greasemonkey
  • Helium
  • Heritrix
  • HtmlUnit
  • HTTrack
  • iMacros
  • Import.io
  • Octoparse
  • Jaxer
  • Mozenda
  • Node.js
  • nokogiri
  • OutWit Hub
  • PhantomJS
  • ScraperWiki
  • Scrapy
  • Screen Scrapy
  • Selenium
  • SimpleTest
  • UiPath
  • watir
  • Web Content Extractor (WCE)
  • WebHarvy
  • Web Scraper
  • 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. Desvendando 'Data Scraping': Entenda como raspar dados pode facilitar o trabalho jornalístico Consultado em 07/06/16
  15. What you need to know about web scraping: How to understand, identify, and sometimes stop Consultado em 06/07/16
  16. IMPERVA, ‘Detecting and Blocking Site Scraping Attacks’ - http://www.imperva.com/docs/wp_detecting_and_blocking_site_scraping_attacks.pdf (2014)
  17. 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)