Temos um banco de dados pesquisável (DB), limitamos os resultados a 15 por página e apenas 100 resultados ainda levam as pessoas a tentar raspar o site.
Estamos proibindo sites que atingem rápido o suficiente. Fiquei me perguntando se há mais alguma coisa que possamos fazer. Talvez o Flash renderize os resultados?
Respostas:
Você pode dificultar um pouco a recuperação dos registros via AJAX e o uso de um ID de autenticação (como uma chave de API) para as chamadas AJAX.
Claro que você pode contornar isso lendo o ID e fazendo a solicitação AJAX usando isso.
A renderização com Flash é uma alternativa, como você indica (embora ainda não seja 100% invencível), como a renderização em PDF.
fonte
Como obviamente existe uma demanda por seu banco de dados, você já pensou em transformá-lo e fornecer o que os raspadores desejam? Estabelecer uma conexão comercial com os raspadores e incentivar o uso apropriado com uma API?
fonte
Há algumas informações boas em Como você impede que os scripts batam seu site centenas de vezes por segundo?
fonte
Não há solução tecnológica para impedir que um indivíduo motivado raspe seu conteúdo acessível ao público.
No entanto, você pode proteger legalmente sua propriedade intelectual:
fonte
Que tal configurar a autenticação (e talvez captcha), rastrear o uso e limitar o acesso a algum número de registros ou pesquisas é um determinado período de tempo?
fonte
Você provavelmente descobrirá que os raspadores irão melhorar a sua aparência quando aplicar diferentes técnicas. Talvez haja uma maneira de analisar o comportamento dos usuários que raspar e apresentar um captcha ou outra interrupção? Talvez você possa limitar os resultados a um número menor por um período de tempo para forçar os raspadores a aguardar 10 dias. Se eles não fizerem logon no intervalo, assuma que são buracos?
Faça o que fizer, misture suas técnicas para proporcionar um pouco mais de longevidade.
fonte
Você precisa considerar que os raspadores podem não estar usando suas páginas e formulários da Web; eles podem estar apenas ligando para o seu site no nível http.
Eu acho que a melhor solução seria lançar um catchpa após um endereço IP solicitar mais do que um determinado limite de solicitação.
Você precisa ter MUITO cuidado para garantir que você não afeta a escalabilidade do seu aplicativo para usuários reais.
Limitar a quantidade de dados por página, conforme descrito na pergunta, aumentará apenas o número de solicitações que os clientes farão no servidor.
fonte