Web scraping
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
- Usar um serviço online de coleta
É possível usar alguns serviços de coleta de dados online. Muitos destes 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. Essa alternativa possui a vantagem de não exigir conhecimentos técnicos avançados do usuário, porém é um serviço com funcionalidades limitadas.
- Usar um software para a coleta
É possível utilizar softwares de desktops ou até mesmo extensões de browsers, como o Mozilla e o Google Chrome, para realizar a extração dos dados. Essa é uma alternativa para processos mais manuais, não automatizados. Possui a mesma facilidade de uso que os serviços online mas oferece maior flexibilidade para se obter os dados.
- Programar seu próprio algoritmo de coleta
É possível escrever um algoritmo de coleta em diversas linguagens de programação. Essa é a técnica que oferta maior flexibilidade, pois é possível criar uma extração completamente adaptável as necessidades do usuário. Por outro lado, é necessário um nível alto 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:
- Direitos Autorais
- Propriedade Intelectual
- Marca Registrada
- Plágio
- Denegreço de Imagem
- Entre outras
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
- http://docs.python-guide.org/en/latest/scenarios/scrape/
- https://www.promptcloud.com/data-scraping-vs-data-crawling/
- http://www.ufjf.br/getcomp/eventos/getupdate/data-scraping-introducao-a-tecnica-de-extracao-de-dados-web/
- http://blog.codus.com.br/pt/2014/11/scraper-crawling-robos-da-internet-e-suas-utilidades/
- http://www.fminer.com/web-data-extraction/
- http://felicianoborrego.com/alternativas-para-realizar-web-scraping/
- https://www.techopedia.com/definition/5212/web-scraping
- http://www.webopedia.com/TERM/W/Web_Scraping.html
- https://www.scrapesentry.com/scraping-defined/
- http://www.conjur.com.br/2014-set-23/gustavo-pedrina-coleta-dados-internet-debatida
- http://www.baquia.com/emprendedores/2014-01-26-imperva-seguridad-innovae-como-evitar-que-alguien-se-apropie-de-los-contenidos-de-nuestra-pagina-web
- IMPERVA, ‘Detecting and Blocking Site Scraping Attacks’ - http://www.imperva.com/docs/wp_detecting_and_blocking_site_scraping_attacks.pdf
- 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