Emezeta.com

Web Scrappers (Evitar robo de contenido)


Los Web Scrappers o ladrones de contenido son un tipo de robot o crawler que indexa contenido recopilando información y artículos de otras webs para -generalmente- duplicarlo, añadiendo bloques de publicidad y lucrarse con el esfuerzo de otros (cosa que vulnera licencias, todo sea dicho).

web scrapper scrappers

Este tipo de técnicas habitualmente generan mucha controversia, ya que a algunas personas les parece totalmente lícito, mientras que a otras les parece una estrategia abyecta.

Entrando un poco más en este tema encontramos los llamados planetas, que no son más que (en ámbitos web) un sitio web que recopila a través de feeds RSS los artículos de diferentes blogs o webs (normalmente siguiendo una misma temática o criterio).

Es una idea genial. Hay multitud de planetas muy interesantes que personalmente sigo (aunque siempre suelo leerlos desde la página original). Sin embargo, hay varios puntos que considero importantes como no permitir comentarios en el planeta, dirigir al lector a la web original, no incorporar publicidad, citar la fuente de los artículos u otros detalles que estarían restando mérito al autor del escrito.

¿Cómo puedo localizar web scrappers?


Es un tema bastante complicado, pero vamos a intentar simplificarlo. Para «robar» contenido, un scrapper o robot spammer (emails, comentarios, trackbacks, ...) tienen que acceder al feed RSS (usualmente llamado index.xml), así que vamos a aprovechar esa acción para encontrarlos.

Necesitaremos acceso a nuestro fichero de logs, generalmente access.log o access_log. Si tenemos acceso SSH a nuestro servidor, mejor que mejor:

egrep “/index.xml” access_log | cut -d” ” -f1,12- | sort | uniq -c | sort -n | tail -25

Con este comando conseguiremos separar los accesos al feed RSS, obteniendo la IP y el User Agent, ordenándolo por número de accesos. Finalmente, obtendremos un listado de los 25 accesos más frecuentes.

Hay que hacer notar que del listado resultante, varios accesos serán de usuarios desde navegadores o agregadores como Bloglines o Google reader. Añadiendo el siguiente pipe al comando anterior podríamos filtrar la mayoría de agregadores, quedando:

egrep “/index.xml” access.log | egrep -v “subscribers|Gecko|Liferea|Google Desktop|Akregator|Vienna|Tumblr|Feedshow|Gregarius|Googlebot|Feedreader” | cut -d” ” -f1,12- | sort | uniq -c | sort -n | tail -25

Después de esto, obtendríamos -ahora si- un listado más aproximado de usuarios «sin identificar» y posibles scrappers. Hay que ser muy cuidadoso e ir investigando cada entrada. Una serie de consejos:

  • Verifica las últimas entradas primero: La primera cifra que aparece es el número de accesos, o lo que es lo mismo, el usuario que más frecuente accede a tu feed RSS. Interesa descubrir quienes son estos individuos.
  • No bloquees agentes como Googlebot o MSNbot: Los buscadores también acceden a tu feed RSS. Asegurate de excluirlos de tu lista.
  • Comprueba las IPs o hosts sospechosos: En Whois DomainTools puedes comprobar las ips para saber si son spammers conocidos.
  • Investiga el User-Agent: Busca por google, en nuestro diccionario de robots, crawlers y spiders o en sus comentarios.
  • Ojo con los User-Agents «Java/x.x.x»: En la mayoría de los casos, son bots maliciosos.

Si no estás seguro de que el usuario que miras sea un robot, siempre podrías investigar más en tus logs a ver en que otras páginas ha estado, a parte del feed RSS:

grep “IP” access_log | cut -d” ” -f7

Finalmente, echa un ojo al artículo bloquear con .htaccess para saber como bloquear a los posibles scrappers que hayas encontrado.