Prevención del raspado del sitio

Dirijo un sitio web para un cliente en el que muestran una gran base de datos de información que han recopilado de forma precisa y lenta a lo largo de los años. Están encontrando sus datos en la web en varios lugares. Lo más probable es que se deba a que un raspador recorre su sitio página por página y extrae la información que necesitan en una base de datos propia. Y en caso de que se lo pregunte, saben que son sus datos debido a un único dato plantado en cada categoría de su sitio.

He investigado mucho sobre esto en los últimos días y puedo decirles que no existe una solución perfecta para todos. Sin embargo, he encontrado varias cosas que hacer para que lograr esto sea un poco más difícil para ellos. Esto es lo que implementé para el cliente.

Datos paginados ajaxificados

Si tiene muchos datos paginados y los está paginando simplemente agregando un número diferente al final de su URL, es decir, http://www.domain.com/category/programming/2, entonces está haciendo el trabajo del rastreador es mucho más fácil. El primer problema es que tiene un patrón fácilmente identificable, por lo que dejar un raspador suelto en estas páginas es muy fácil. Segundo problema, independientemente de la URL de las páginas subsiguientes en la categoría, lo más probable es que haya un enlace anterior y siguiente al que puedan acceder.

Al cargar los datos paginados a través de javascript sin recargar la página, esto complica significativamente el trabajo para muchos scrapers que existen. Google solo recientemente comenzó a analizar javascript en la página. Hay pocas desventajas en recargar los datos de esta manera. Proporciona algunas páginas menos para que Google las indexe, pero, técnicamente, los datos paginados deberían apuntar a la página de la categoría raíz a través de canonicalización de todas formas. Ajaxifique sus páginas de datos paginadas.

Aleatorizar la salida de la plantilla

Los raspadores a menudo se personalizarán ligeramente para sus datos específicamente. Se aferrarán a un determinado ID de div o clase para el título, la tercera celda de cada fila para su descripción, etc. Existe un patrón fácilmente identificable para que la mayoría de los raspadores trabajen, ya que la mayoría de los datos provienen de la misma tabla, se muestra en la misma plantilla. Aleatorice sus ID de div y nombres de clase, inserte columnas de tabla en blanco al azar con 0 de ancho. Muestre sus datos en una tabla en una página, en divs con estilo y una combinación en otra plantilla. Al presentar sus datos de manera predecible, se pueden extraer de manera predecible y precisa.

Tarro de miel

Esto es bastante elegante en su simplicidad. Me he encontrado con este método en varias páginas sobre cómo prevenir el raspado de sitios.

  • Cree un nuevo archivo en su servidor llamado gotcha.html.
  • En su archivo robots.txt, agregue lo siguiente:
    Agente de usuario: *
    No permitir: /gotcha.html

    Esto le dice a todos los robots y arañas que están indexando su sitio que no indexen el archivo gotcha.html. Cualquier rastreador web normal respetará los deseos de su archivo robots.txt y no accederá a ese archivo. es decir, Google y Bing. Es posible que desee implementar este paso y esperar 24 horas antes de continuar con el siguiente. Esto asegurará que un rastreador no sea bloqueado accidentalmente por usted debido al hecho de que ya estaba en mitad del rastreo cuando actualizó su archivo robots.txt.
  • Coloque un enlace a gotcha.html en algún lugar de su sitio web. No importa dónde. Recomendaría en el pie de página, sin embargo, asegúrese de que este enlace no esté visible, en CSS, pantalla: ninguna;
  • Ahora, registre la IP / información general del delincuente que visitó esta página y bloquéelo. Alternativamente, puede crear una secuencia de comandos para proporcionarles datos incorrectos y basura. O tal vez un buen mensaje personal de usted para ellos.

Los espectadores web habituales no podrán ver el enlace, por lo que no se hará clic accidentalmente en él. Los rastreadores de buena reputación (Google, por ejemplo) respetarán los deseos de su robots.txt y no visitarán el archivo. Entonces, las únicas computadoras que deberían tropezar con esta página son aquellas con intenciones maliciosas, o alguien que vea su código fuente y haga clic aleatoriamente (y bueno, si eso sucede).

Hay un par de razones por las que esto no siempre funciona. En primer lugar, muchos raspadores no funcionan como rastreadores web normales y no solo descubren los datos siguiendo cada enlace de cada página de su sitio. Los raspadores a menudo se construyen para fijarse en ciertas páginas y seguir solo ciertas estructuras. Por ejemplo, un raspador puede iniciarse en una página de categoría y luego decirle solo que visite URL con la palabra / datos en el slug. En segundo lugar, si alguien está ejecutando su raspador en la misma red que los demás, y se está utilizando una IP compartida, deberá prohibir toda la red. Debería tener un sitio web muy popular para que esto sea un problema.

Escribe datos en imágenes sobre la marcha

Busque un campo de datos más pequeño, no necesariamente cadenas de texto largas, ya que esto puede hacer que el estilo de la página sea un poco más difícil. Envíe estos datos dentro de una imagen, estoy bastante seguro de que existen métodos en casi todos los lenguajes de programación para escribir texto en una imagen de forma dinámica (en php, imagettftext). Esto probablemente sea más efectivo con valores numéricos, ya que los números brindan una ventaja de SEO mucho más insignificante.

Alternativa

Esta no era una opción para este proyecto. Requerir un inicio de sesión después de una cierta cantidad de páginas vistas, o mostrar una cantidad limitada de datos sin iniciar sesión. Es decir, si tiene 10 columnas, solo muestre 5 para los usuarios que no iniciaron sesión.

No cometas este error

No se moleste en intentar encontrar algún tipo de solución basada en el agente de usuario del bot. Esta información puede ser fácilmente falsificada por un raspador que sabe lo que está haciendo. El bot de Google, por ejemplo, se puede emular fácilmente. Lo más probable es que no quieras prohibir Google.

Similar Posts

Leave a Reply

Your email address will not be published. Required fields are marked *