
¿Qué es un web Crawler?
Un web Crawler, robot rastreador, araña o motor de búsqueda descarga e indexa
contenido de todo Internet. El objetivo de un robot de este tipo es aprender
de qué trata (casi) cada página web de la web, de modo que se pueda recuperar
la información cuando sea necesaria. Se los llama «rastreadores web» porque
«rastrear» (crawler) es el término técnico que se utiliza para acceder
automáticamente a un sitio web y obtener datos a través de un programa de
software.
Estos robots casi siempre son operados por motores de búsqueda y bots. Al
aplicar un algoritmo de búsqueda a los datos recopilados, se pueden
proporcionar datos y enlaces relevantes. Se desconoce qué porcentaje de
Internet disponible públicamente es rastreado realmente por los robots de los
motores de búsqueda. Algunas fuentes estiman que solo entre el 40 y el 70% de
Internet está indexado para búsquedas, y eso son miles de millones de páginas
web.
Para intentar encontrar toda la información relevante, un bot rastreador web
comenzará con un determinado conjunto de páginas web conocidas y luego seguirá
los hipervínculos de esas páginas a otras páginas, seguirá los hipervínculos
de esas otras páginas a páginas adicionales, y así sucesivamente. Los bots
comienzan a partir de una semilla o una lista de URL conocidas. Primero
rastrean las páginas web en esas URL. A medida que rastrean esas páginas web,
encontrarán hipervínculos a otras URL y las agregarán a la lista de páginas
que rastrearán a continuación.
-
La idea es que una página web que es citada por muchas otras páginas web y
recibe muchos visitantes es probable que contenga información autorizada y
de alta calidad, por lo que es especialmente importante que un motor de
búsqueda la indexe, al igual que una biblioteca podría asegurarse de
mantener muchas copias de un libro que muchas personas consultan. -
Revisión de páginas web: el contenido de la Web se actualiza, elimina o
mueve a nuevas ubicaciones continuamente. Los rastreadores web necesitarán
volver a visitar las páginas periódicamente para asegurarse de que la última
versión del contenido esté indexada. -
Requisitos de
robots.txt: los rastreadores web también deciden qué páginas rastrear en función del
protocolo robots.txt (también conocido como protocolo de exclusión de
robots). Antes de rastrear una página web, comprobarán el archivo robots.txt
alojado en el servidor web de esa página. Este archivo de texto que
especifica las reglas para cualquier robot que acceda al sitio web o
aplicación alojados.
Todos estos factores tienen un peso diferente dentro de los algoritmos
propietarios que cada motor de búsqueda incorpora a sus robots araña. Los
robots araña de diferentes motores de búsqueda se comportarán de forma
ligeramente diferente, aunque el objetivo final es el mismo: descargar e
indexar contenido de las páginas web.
¿Se debe permitir siempre a los robots de rastreo web acceder a las
propiedades web?
Eso depende de la propiedad web y de varios factores. Los robots de rastreo
utilizan recursos del servidor para indexar el contenido; realizan solicitudes
a las que el servidor debe responder. Según la cantidad de contenido de cada
página o la cantidad de páginas del sitio, podría ser en el mejor interés del
operador del sitio web no permitir la indexación de búsqueda con demasiada
frecuencia, ya que
una indexación excesiva podría sobrecargar el servidor, aumentar los costos
de ancho de banda o ambas cosas.
Además, es posible que los desarrolladores o las empresas no quieran que
algunas páginas web sean detectables a menos que un usuario ya haya recibido
un enlace a la página (sin poner la página detrás de un muro de pago o un
inicio de sesión). Un ejemplo de un caso así para las empresas es cuando crean
una página de destino dedicada para una campaña de marketing, pero no quieren
que nadie que no sea el objetivo de la campaña acceda a la página. De esta
manera, pueden adaptar el mensaje o medir con precisión el rendimiento de la
página.
En estos casos, la empresa puede agregar una etiqueta «no-index» a la
página de destino y no aparecerá en los resultados de los motores de búsqueda.
También pueden agregar una etiqueta «disallow» en la página o en el
archivo robots.txt y los robots de los motores de búsqueda no la
rastrearán en absoluto.
¿Cuál es la diferencia entre el rastreo web y el Scraping web?
El scrapping raspado web, el
raspado de datos
o el
raspado de contenido
es cuando un bot descarga el contenido de un sitio web sin permiso, a menudo
con la intención de usar ese contenido para un propósito propio
malicioso.
El scrapping suele ser mucho más específico y agresivo que el rastreo
web.
Los web scrapers pueden estar interesados únicamente en páginas o sitios web
específicos, mientras que los web crawlers seguirán los enlaces y rastrearán
las páginas de forma continua.
Además, los scrapers ignorarán el archivo robots.txt y la carga
que ejercen sobre los servidores web, sin limitar sus solicitudes y abusando
de los recursos del servidor.
El scraping es el proceso de utilizar herramientas
automatizadas para extraer grandes cantidades de datos de sitios web, que
generalmente involucran rastreadores y robots que pueden evadir las
medidas anti-scraping imitando el comportamiento humano del
usuario.
Cómo «detener» el scraping
El scraping no se puede evitar por completo, ya que, los scrapers
(herramientas y personas) dedicados pueden descubrir cómo hacerlo. Sin
embargo,
se puede detener una gran cantidad de scraping
haciendo algunas cosas:
-
Analizar patrones de tráfico y limitar el acceso inusual: controlar los
registros de navegación regularmente y, en caso de actividad inusual que
indique acceso automático (bots y scrapers), como muchas acciones similares
desde la misma dirección IP, se puede bloquear o limitar el acceso. -
Limitación de velocidad: permite realizar una cantidad limitada de acciones
en un tiempo determinado; por ejemplo, solo se permite unas pocas búsquedas
por segundo desde una dirección IP o usuario específico. Esto ralentizará a
los scrapers y los hará ineficaces. También se puede mostrar un CAPTCHA si
las acciones se completan demasiado rápido o más rápido de lo que lo haría
un usuario real. -
Detectar actividad inusual: por ejemplo, si algo o alguien que descarga una
cantidad excesiva de páginas o realiza una cantidad inusual de búsquedas.
Se pueden usar otros indicadores y métodos para identificar usuarios o
scrapers específicos:
- Qué tan rápido los usuarios completan formularios y en qué botón hacen clic.
-
se puede recopilar mucha información con JavaScript, como tamaño/resolución
de pantalla, zona horaria, fuentes instaladas, etc.; y se pueden usar estos
datos para identificar usuarios «reales». -
Encabezados HTTP y su orden, especialmente User-Agent (aunque se puede
simular): por ejemplo, si se reciben muchas solicitudes desde una única
dirección IP, todas con el mismo agente de usuario, tamaño de pantalla
(determinado con JavaScript) y el usuario (el scraper en este caso) siempre
hace clic en el botón de la misma forma y a intervalos regulares, es
probable que se trate de un scraper de pantalla; y se pueden bloquear
temporalmente solicitudes similares (por ejemplo, bloquear todas las
solicitudes con ese agente de usuario y tamaño de pantalla que provengan de
esa dirección IP en particular). -
Se pueden identificar solicitudes similares, incluso si provienen de
diferentes direcciones IP, lo que indica un scraper distribuido (un scraper
que usa una botnet o una red de servidores proxy). Si se reciben muchas
solicitudes idénticas, pero provienen de diferentes direcciones IP, se
pueden bloquearlas.
Honeypot para «comer» scrapers
Como herramienta «novedosa» se puede implementar un Honeypot de
scrapers. Por ejemplo, la herramienta Open Source Nepenthes
está dirigido a los rastreadores que extraen datos para los LLM, pero en
realidad, al igual que las plantas que le dan nombre, se comerá casi cualquier
cosa que encuentre en su interior.
Funciona generando una secuencia infinita de páginas, cada una de ellas con
docenas de enlaces, que simplemente vuelven a una trampa. Las páginas se
generan aleatoriamente, pero de forma determinista, lo que hace que parezcan
archivos planos que nunca cambian. Se añade un retraso intencionado para
evitar que los rastreadores bloqueen el servidor, además de perder el tiempo.
Por último, se puede añadir un «parloteo» con una
cadena de Markov
opcional a las páginas, para dar a los rastreadores algo que extraer y en lo
que entrenar a sus LLM, con lo que, con suerte, se acelerará el colapso del
modelo.
Aquí se puede ver una
demostración
del funcionamiento. Es lenta a propósito.
Fuente:
Nephentes