Tenemos una base de datos de búsqueda (DB), limitamos los resultados a 15 por página y solo 100 resultados todavía hacen que las personas intenten raspar el sitio.
Estamos prohibiendo sitios que lleguen lo suficientemente rápido. Me preguntaba si hay algo más que podamos hacer. Flash renderizar los resultados tal vez?
Respuestas:
Podría hacerlo un poco más difícil recuperando los registros a través de AJAX y utilizando una ID de autenticación (como una clave API) para las llamadas AJAX.
Por supuesto, puede evitar esto leyendo la ID y luego haciendo la solicitud AJAX con eso.
Renderizar con Flash es una alternativa como usted señala (aunque todavía no es 100% indescifrable), como lo es renderizar en PDF.
fuente
Dado que obviamente existe una demanda para su base de datos, ¿ha pensado en darle la vuelta y proporcionar lo que quieren los raspadores? ¿Forma una conexión comercial con los scrapers y fomenta el uso apropiado con una API?
fuente
Hay buena información en ¿Cómo evitas que los scripters golpeen tu sitio web cientos de veces por segundo?
fuente
No existe una solución tecnológica para evitar que una persona motivada raspe su contenido de acceso público.
Sin embargo, puede proteger legalmente su propiedad intelectual mediante:
fuente
¿Qué tal configurar la autenticación (y quizás el captcha), rastrear el uso y limitar el acceso a cierto número de registros o búsquedas en un período de tiempo determinado?
fuente
Probablemente encontrará que los raspadores mejorarán su rendimiento a medida que aplique diferentes técnicas. ¿Quizás hay una manera de analizar el comportamiento de los usuarios que raspan y presentan un captcha u otra interrupción? Tal vez podría limitar los resultados a un número menor durante un período de tiempo para obligar a los raspadores a esperar 10 días. Si no inician sesión en el medio, ¿asumen que son scapers?
Hagas lo que hagas, asegúrate de mezclar tus técnicas para darles un poco más de longevidad.
fuente
Debe tener en cuenta que los raspadores pueden no estar utilizando sus páginas web y formularios, pueden estar llamando a su sitio a un nivel http.
Creo que la mejor solución sería lanzar un catchpa después de que una dirección IP solicite más de un determinado umbral de solicitud.
Sin embargo, debe tener MUCHO cuidado para asegurarse de no afectar la escalabilidad de su aplicación para usuarios reales.
Limitar la cantidad de datos por página como describe en la pregunta solo aumentará la cantidad de solicitudes que los clientes harán contra su servidor.
fuente