Para os que não estão familiarizados com interações automatizadas à páginas de Internet, o web scraping (raspagem de dados, em tradução livre) é uma ferramenta desenvolvida para coletar informações específicas de forma consecutiva. Por exemplo, vamos supor que alguém precise obter o valor da cotação do dólar diariamente, às 10h30. Para conseguir esta informação basta acessar um site oficial que tenha cotações de moedas estrangeiras ou consultar em algum mecanismo de busca, como o Google, a cotação da moeda como resultado principal da busca “dólar hoje”.
A busca anterior não seria algo tão difícil ou complicado, mas agora imagine um cenário no qual além do dólar seja necessário coletar a informação de mais 14 moedas estrangeiras e de 9 criptomoedas específicas. Neste caso, o web scraping começa a mostrar seu valor, pois com apenas um ou dois clicks todas as informações serão coletadas e exibidas de acordo com a necessidade que lhes foi atribuída.
Mas então, o que é um web scraping?
De forma mais geral e resumida, web scraping é o ato de interagir com um site ou serviço e coletar informações específicas, normalmente tratando e apresentando os dados coletados da forma mais adequada a necessidade de quem o programou.
É uma das muitas possibilidades de automatização de processos que visam interagir com páginas/sistemas disponíveis na Internet.
Qualquer um pode realizar web scraping?
Sim, pois em geral é apenas um sistema automático que acessa um site da internet para “ver” uma informação, exatamente (ou quase) como uma pessoa faria, ainda assim há dois pontos que considero pertinentes e que devem ser levados em consideração:
1. Criminosos utilizam web scraping para montar bases de dados com o intuito de troca/venda
Como qualquer ferramenta, seja ela digital ou não, o destino dado ao seu uso irá depender única e exclusivamente de quem a está utilizando. Como no exemplo citado, o web scraping pode ser usado para auxiliar uma corretora ou banco a obter informações sobre cotações de moedas ou, em caso de uso mal-intencionado, pode coletar informações de pessoas e guardá-las em um arquivo que futuramente será vendido ou trocado por outras informações em fóruns na Deep ou Dark Web.
Para ilustrar como criminosos se aproveitam disso citarei um exemplo real que tive notícias certo tempo atrás. Uma grande loja fez uma promoção na qual pedia os dados cadastrais de seus clientes, mas, após o preenchimento destes dados, uma página exibia todas as informações para conferência. Criminosos analisaram este site e descobriram que também era possível ver esta mesma página com os dados de outros clientes, com estas informações em mãos foi possível criar um scraper e as informações cadastrais dos clientes passaram a ser coletadas e armazenadas pelos criminosos.
Diversos vazamentos que temos notícias são realizados através do uso de web scraping, mas, como citei, o uso também pode ser não malicioso. Para que uma coleta de informações não tenha características maliciosas, é interessante entender como moldá-la.
2. Risco de DDoS
Existem muitas possibilidades quando o assunto é Web Scraping, softwares que interagem com o site através de um browser, simulando de forma fiel o comportamento humano, e outras ferramentas que enviam suas requisições de forma mais sequencial, diretamente pela linha de comando. As soluções de Web Scraping via linha de comando tendem a obter informações mais rápido e caso não sejam adequadamente parametrizadas podem gerar uma quantidade tão grande de requisições ao destino que a raspagem pode ser interpretada como DDoS. Caso o excesso de requisições seja interpretado como malicioso pode haver um bloqueio temporário ou permanente do IP que está fazendo a varredura. Dependendo dos sistemas de proteção do site, o IP de origem pode ser colocado em uma blacklist mais abrangente e outros sites podem recusar as conexões vindas da origem quem iniciou o web scraping.
Dicas
Caso pretenda se aventurar nos estudos sobre raspagem de dados, procure entender a fundo como o software eleito por você irá funcionar. Pode ser útil aprender como adequar a quantidade de requisições por segundo, quantos segundos de intervalo haverá entre uma requisição e outra, se há a possibilidade de alterar o cliente web que será enviado nas requisições e se é possível configurar um número máximo de coleta de informações para que, caso este número seja atingido, o processo de raspagem seja interrompido.
Por se tratar de uma ferramenta muito específica que tem seu impacto percebido principalmente por administradores de sites e serviços acessíveis via web, separei algumas dicas de segurança que podem auxiliar estas pessoas a lidarem de forma mais adequada com o web scraping.
- Não tenha preocupações excessivas com o scraping: vale lembrar que o scraping é apenas um acesso a uma informação e pode ser improdutivo se preocupar em bloqueá-lo. Ao invés disso, procure direcionar esforços para assegurar acesso legítimo à informação.
- Garanta que dados de uma pessoa sejam acessíveis apenas por aquela pessoa: um dos erros clássicos que permitem que pessoas mal-intencionadas tenham acesso a informações de outras pessoas é o fato de que elas não têm o devido permissionamento. Adeque a autorização de acesso às informações para impedir que toda a base de dados fique disponível para qualquer usuário que esteja autenticado no sistema.
- Dimensione adequadamente os recursos do seu servidor: dimensionar adequadamente as necessidades de hardware do servidor, sempre que possível considerando as conexões excedentes que podem acontecer periodicamente, para evitar eventuais momentos de interrupção do serviço.
- Configure adequadamente bloqueios automáticos: como citei, por vezes ocorrem bloqueios automáticos quando requisições chegam em um volume acima do esperado. Caso queira limitar mais as eventuais raspagens, deixe o sensor mais sensível, caso não ele não esteja configurado para ser mais tolerante, independentemente da escolha realizada, certifique-se de que eventuais bloqueios não sejam permanentes, pois o comportamento de alguns browsers e usuários podem gerar requisições em excesso e os filtros podem acabar bloqueando pessoas ao invés de softwares de raspagem.