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. O uso dessa técnica está relacionado à área de comparação de preços online, monitoramentos meteorológicos, pesquisas, entre outros.

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.

Funcionamento

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/aplicativos o usuário pode se conectar a uma site e solicitar uma página, exatamente como um navegador faria. O servidor web irá enviar de volta a página que o usuário requisitou e então será possível realizar a manipulação e extrair informações específicas.

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

  • iMacros
  • Wireshark
  • Scrapy
  • PhantomJS
  • Node.js
  • Selenium
  • Greasemonkey

Ver também

Referências

  1. http://docs.python-guide.org/en/latest/scenarios/scrape/
  2. https://www.promptcloud.com/data-scraping-vs-data-crawling/
  3. http://www.ufjf.br/getcomp/eventos/getupdate/data-scraping-introducao-a-tecnica-de-extracao-de-dados-web/
  4. http://blog.codus.com.br/pt/2014/11/scraper-crawling-robos-da-internet-e-suas-utilidades/
  5. http://www.fminer.com/web-data-extraction/
  6. http://felicianoborrego.com/alternativas-para-realizar-web-scraping/
  7. https://www.techopedia.com/definition/5212/web-scraping
  8. http://www.webopedia.com/TERM/W/Web_Scraping.html
  9. https://www.scrapesentry.com/scraping-defined/
  10. http://www.conjur.com.br/2014-set-23/gustavo-pedrina-coleta-dados-internet-debatida
  11. http://www.baquia.com/emprendedores/2014-01-26-imperva-seguridad-innovae-como-evitar-que-alguien-se-apropie-de-los-contenidos-de-nuestra-pagina-web
  12. IMPERVA, ‘Detecting and Blocking Site Scraping Attacks’ - http://www.imperva.com/docs/wp_detecting_and_blocking_site_scraping_attacks.pdf
  13. III WPCI, 'COLETA DE DADOS EM PLATAFORMAS DE REDES SOCIAIS: ESTUDO DE APLICATIVOS' - http://rabci.org/rabci/sites/default/files/222-838-1-PB_0.pdf