Araña web para niños
Un rastreador web, también conocido como araña web o indexador web, es un programa informático especial que explora las páginas de Internet de forma organizada y automática. Imagina que es como una araña que teje su red, pero en lugar de hilos, sigue los enlaces de las páginas web.
Uno de los usos más importantes de estos programas es ayudar a los motores de búsqueda (como Google o Bing) a crear una copia de todas las páginas web que visitan. Luego, esta información se organiza en un índice para que puedas encontrar lo que buscas rápidamente. Las arañas web suelen ser un tipo de bot (un programa que realiza tareas automáticas).
Las arañas web empiezan visitando una lista de direcciones de Internet (llamadas URL). En cada página, identifican todos los enlaces y los añaden a una lista de nuevas URL para visitar. Así, el programa descarga una página, busca nuevos enlaces, descarga esas nuevas páginas, y el proceso se repite una y otra vez.
Algunas de las tareas más comunes de las arañas web son:
- Crear el índice de un motor de búsqueda para que puedas encontrar información.
- Revisar los enlaces de un sitio web para encontrar si hay alguno que no funciona (roto).
- Recopilar información específica, como precios de productos para crear un catálogo en línea.
Contenido
- ¿Cómo funcionan los rastreadores web?
- Reglas de rastreo
- Política de selección: ¿Qué páginas son importantes?
- Normalización de URL: Evitando duplicados
- Rastreo de rutas: Explorando a fondo
- Rastreo enfocado: Buscando temas específicos
- Política de revisita: Manteniendo la información fresca
- Política de cortesía: Siendo un buen visitante
- Política de paralelización: Trabajando en equipo
- Diseño de un rastreador
- Seguridad en el rastreo web
- ¿Cómo se identifica un rastreador?
- Rastreo de la "Web Profunda"
- Ejemplos de rastreadores web
- Véase también
¿Cómo funcionan los rastreadores web?
Un buen rastreador web empieza con una lista de direcciones URL iniciales, a las que se les llama "semillas". A medida que el rastreador visita estas direcciones, encuentra todos los enlaces en cada página y los añade a una lista de URL pendientes de visitar. Esta lista se conoce como la frontera de rastreo. Las URL de esta lista se visitan de forma repetida, siguiendo ciertas reglas.
Si el rastreador está guardando copias de los sitios web, copia y guarda la información a medida que avanza. Estas copias se guardan de forma que se puedan ver y navegar como si estuvieran en línea, pero son como "fotos" o "instantáneas" de la web en un momento dado.
Debido a la enorme cantidad de páginas en Internet, un rastreador solo puede descargar un número limitado de páginas en un tiempo determinado. Por eso, necesita decidir qué páginas son más importantes para descargar primero. Además, las páginas cambian muy rápido, por lo que una página que se descargó puede haber sido actualizada o incluso eliminada poco después.
También es un desafío para los rastreadores evitar descargar contenido repetido. Por ejemplo, una galería de fotos en línea podría mostrar las mismas imágenes con muchas direcciones URL diferentes, dependiendo de cómo se ordenen o se muestren. El rastreador debe ser inteligente para reconocer que es el mismo contenido y no descargarlo varias veces.
Es muy importante que un rastreador explore la web de forma eficiente, ya que el ancho de banda (la capacidad de la conexión a Internet) no es ilimitado y tiene un costo. Por eso, el rastreador debe elegir cuidadosamente qué página visitar a continuación para mantener la información lo más actualizada posible.
Reglas de rastreo
El comportamiento de un rastreador web se basa en varias reglas o "políticas":
- Una política de selección decide qué páginas se van a descargar.
- Una política de revisita establece cuándo debe buscar cambios en las páginas ya visitadas.
- Una política de cortesía indica cómo evitar sobrecargar los sitios web.
- Una política de paralelización explica cómo coordinar varios rastreadores que trabajan al mismo tiempo.
Política de selección: ¿Qué páginas son importantes?
Dado el tamaño actual de Internet, incluso los motores de búsqueda más grandes solo cubren una parte de las páginas disponibles públicamente. Estudios han demostrado que los motores de búsqueda no indexan más del 40-70% de la web que se puede indexar. Como un rastreador siempre descarga solo una parte de las páginas web, es muy útil que esa parte contenga las páginas más relevantes, y no solo una selección al azar.
Para esto, se necesita una forma de medir la importancia de una página. La importancia de una página puede depender de su calidad, de su popularidad (cuántos enlaces apuntan a ella o cuántas visitas tiene) e incluso de su dirección URL. Diseñar una buena política de selección es difícil porque el rastreador debe tomar decisiones con información incompleta, ya que no conoce todas las páginas de Internet al principio.
Los investigadores han estudiado diferentes formas de priorizar las páginas. Por ejemplo, algunos métodos intentan encontrar primero las páginas que son más importantes según el algoritmo Pagerank (que mide la importancia de una página basándose en la cantidad y calidad de los enlaces que apuntan a ella). Otros métodos se basan en la cantidad de enlaces que apuntan a una página o en el orden en que se encuentran las páginas.
Un algoritmo llamado OPIC (On-line Page Importance Computation) asigna una cantidad inicial de "dinero" a cada página, que luego se distribuye a las páginas a las que apunta. Un rastreador que usa OPIC descarga primero las páginas con más "dinero".
También se ha demostrado que usar un rastreo anterior puede ayudar a guiar el rastreo actual, haciendo que sea más eficiente.
Normalización de URL: Evitando duplicados
Los rastreadores suelen "normalizar" las URL para evitar visitar el mismo contenido más de una vez. La normalización de URL, también llamada canonización de URL, es el proceso de modificar y estandarizar una URL de forma consistente. Esto puede incluir convertir las URL a minúsculas, eliminar partes innecesarias como "." y "..", o añadir barras al final de la dirección.
Rastreo de rutas: Explorando a fondo
Algunos rastreadores buscan descargar la mayor cantidad posible de recursos de un sitio web específico. Para lograr esto, utilizan el "rastreo ascendente". Esto significa que, si encuentran una URL como `http://ejemplo.org/carpeta1/carpeta2/pagina.html`, también intentarán rastrear `/carpeta1/carpeta2/`, `/carpeta1/` y `/`. Este método es muy efectivo para encontrar recursos que de otra manera no tendrían enlaces directos.
Rastreo enfocado: Buscando temas específicos
La importancia de una página para un rastreador también puede depender de qué tan similar es a un tema específico que se está buscando. Los rastreadores web que intentan descargar páginas sobre un tema en particular se llaman rastreadores enfocados o rastreadores temáticos.
El desafío principal del rastreo enfocado es que el rastreador necesita predecir si el contenido de una página será relevante para el tema antes de descargarla. Una forma de hacerlo es mirando el texto de los enlaces que apuntan a esa página. El rendimiento de un rastreo enfocado depende mucho de cuántos enlaces existen sobre el tema específico que se busca.
Rastreadores académicos
Un ejemplo de rastreadores enfocados son los rastreadores académicos, que buscan documentos científicos de acceso libre, como los que usa el motor de búsqueda CiteSeerX. Otros ejemplos son Google Scholar y Microsoft Academic Search. Como la mayoría de los documentos académicos están en formato PDF, estos rastreadores se interesan especialmente en descargar archivos PDF, PostScript y Microsoft Word.
Estos rastreadores a menudo necesitan ser adaptados para filtrar otros tipos de archivos o para extraer los documentos y añadirlos a su base de datos. Identificar si un documento es académico o no es un reto y a menudo se hace después de la descarga, usando programas especiales. Estos documentos suelen encontrarse en las páginas de inicio de profesores, estudiantes o institutos de investigación.
Rastreadores enfocados en la semántica
Otro tipo de rastreadores enfocados son los que se basan en la semántica. Estos usan "ontologías" (mapas de conocimiento que representan conceptos y sus relaciones) para entender los temas y conectar las páginas web con conceptos relevantes para la selección y clasificación. Además, estas ontologías pueden actualizarse automáticamente mientras el rastreador trabaja.
Política de revisita: Manteniendo la información fresca
Internet cambia constantemente: se crean, actualizan y eliminan páginas. Un rastreo completo de la web puede llevar semanas o meses. Para cuando un rastreador termina, mucha información ya podría estar desactualizada.
Para un motor de búsqueda, es importante detectar los cambios y tener la información más reciente. Se usan dos medidas principales:
- Novedad: Indica si la copia que tiene el rastreador es exactamente igual a la página actual en Internet. Si es igual, la novedad es 1; si no, es 0.
- Antigüedad: Mide cuánto tiempo ha pasado desde que la copia local de una página fue modificada por última vez. Si la página no ha cambiado, la antigüedad es 0; si sí, es el tiempo transcurrido desde su última modificación.
El objetivo del rastreador es mantener la novedad de las páginas lo más alta posible o la antigüedad lo más baja posible.
Los investigadores han estudiado diferentes políticas de revisita:
- Política uniforme: Vuelve a visitar todas las páginas con la misma frecuencia, sin importar qué tan rápido cambien.
- Política proporcional: Vuelve a visitar más a menudo las páginas que cambian con más frecuencia. La frecuencia de visita es directamente proporcional a la frecuencia de cambio estimada.
Sorprendentemente, se ha demostrado que, en términos de novedad, la política uniforme a menudo es mejor que la proporcional. Esto se debe a que los rastreadores tienen un límite de páginas que pueden rastrear. Una política proporcional podría dedicar demasiados recursos a páginas que cambian muy rápido, pero cuya "frescura" dura poco, dejando de lado páginas que cambian menos pero que podrían ser más importantes a largo plazo.
Para mejorar la novedad, el rastreador debería evitar visitar demasiado a menudo las páginas que cambian constantemente. La forma óptima de mantener la información fresca está más cerca de la política uniforme.
Política de cortesía: Siendo un buen visitante
Los rastreadores pueden descargar datos mucho más rápido y en mayor cantidad que los humanos. Esto podría afectar el rendimiento de un sitio web. Si un solo rastreador hace muchas peticiones por segundo o descarga archivos muy grandes, un servidor web podría tener problemas para atender a otros visitantes.
Usar rastreadores web es muy útil, pero tiene un costo para la comunidad de Internet:
- Recursos de red: Los rastreadores necesitan mucho ancho de banda y funcionan de forma muy rápida durante mucho tiempo.
- Sobrecarga de servidores: Si un rastreador visita un servidor con demasiada frecuencia, puede saturarlo.
- Rastreadores mal programados: Pueden hacer que los servidores o routers fallen, o intentar descargar páginas que no pueden manejar.
- Rastreadores personales: Si muchas personas usan rastreadores pequeños, pueden afectar las redes y los servidores.
Una solución parcial a estos problemas es el estándar de exclusión de robots, también conocido como archivo robots.txt. Este es un archivo donde los administradores de sitios web pueden indicar a los rastreadores qué partes de sus servidores no deben visitar. Aunque este estándar no sugiere un tiempo de espera entre visitas al mismo servidor, este intervalo es la forma más efectiva de evitar sobrecargar el servidor. Los motores de búsqueda grandes como Google o Yahoo! Search suelen usar un parámetro adicional en el archivo robots.txt para indicar cuántos segundos deben esperar entre peticiones.
Se ha sugerido un intervalo de 60 segundos entre descargas sucesivas de páginas. Sin embargo, si un sitio web tiene más de 100.000 páginas, tardaría más de 2 meses en descargarse completamente a ese ritmo. Por eso, los rastreadores suelen usar intervalos más cortos, como 10 o 15 segundos, o incluso adaptativos, esperando más tiempo si la descarga anterior tardó mucho.
Los administradores de sitios web a veces se quejan de los rastreadores, incluso cuando estos son muy "educados". Esto se debe a que, con tantos servidores en Internet, siempre hay administradores que no saben qué es un rastreador cuando ven uno por primera vez.
Política de paralelización: Trabajando en equipo
Un rastreador paralelo es un rastreador que ejecuta varias tareas al mismo tiempo. El objetivo es descargar páginas lo más rápido posible, evitando descargar la misma página varias veces. Para esto, el sistema de rastreo necesita una forma de organizar las nuevas URL que se descubren, ya que la misma URL podría ser encontrada por diferentes procesos de rastreo.
Diseño de un rastreador
Un rastreador no solo necesita una buena estrategia de rastreo, sino también un diseño muy eficiente.
Construir un rastreador lento que descargue unas pocas páginas por segundo es relativamente fácil. Sin embargo, crear un sistema de alto rendimiento que pueda descargar cientos de millones de páginas durante varias semanas presenta muchos desafíos en el diseño, la eficiencia de la entrada/salida de datos y la red, y la capacidad de ser robusto y fácil de manejar.
Los rastreadores web son una parte fundamental de los motores de búsqueda, y los detalles sobre sus algoritmos y diseño suelen ser secretos comerciales. Cuando se publican diseños de rastreadores, a menudo faltan detalles importantes que impiden que otros puedan replicar el trabajo. También existe la preocupación por las técnicas que intentan engañar a los motores de búsqueda, lo que hace que los principales motores de búsqueda no publiquen sus algoritmos de clasificación.
Seguridad en el rastreo web
Aunque la mayoría de los dueños de sitios web quieren que sus páginas se indexen lo más ampliamente posible para aparecer bien en los motores de búsqueda, el rastreo web también puede tener consecuencias no deseadas. Por ejemplo, un motor de búsqueda podría indexar información que no debería ser pública, o páginas que revelan versiones de software que podrían ser vulnerables. Esto podría llevar a un acceso no autorizado a información.
Para protegerse, además de las recomendaciones generales de seguridad web, los dueños de sitios web pueden reducir el riesgo permitiendo que los motores de búsqueda indexen solo las partes públicas de sus sitios (usando robots.txt) y bloqueando explícitamente la indexación de las partes privadas o de transacciones (como páginas de inicio de sesión).
¿Cómo se identifica un rastreador?
Los rastreadores web suelen identificarse ante un servidor web usando un campo especial en sus solicitudes llamado "agente de usuario" (user agent). Los administradores de sitios web revisan los registros de sus servidores web para ver qué rastreadores han visitado su sitio y con qué frecuencia. El campo de agente de usuario a veces incluye una URL donde el administrador puede encontrar más información sobre el rastreador.
Revisar los registros del servidor web puede ser una tarea larga, por lo que algunos administradores usan herramientas para identificar y verificar los rastreadores. Los programas malintencionados o spambots (programas que envían spam) rara vez ponen información de identificación en el campo del agente de usuario, o pueden intentar hacerse pasar por un navegador normal u otro rastreador conocido.
Los administradores de sitios web prefieren que los rastreadores se identifiquen para poder contactar con el dueño si es necesario. Por ejemplo, un rastreador podría quedar atrapado accidentalmente en una "trampa para rastreadores" (una parte del sitio diseñada para atraparlos) o podría estar sobrecargando un servidor web con demasiadas peticiones. En esos casos, el dueño del sitio necesita poder detener el rastreador. La identificación también es útil para los administradores que quieren saber cuándo sus páginas web podrían ser indexadas por un motor de búsqueda específico.
Rastreo de la "Web Profunda"
Una gran cantidad de páginas web se encuentran en la Web Profunda. Estas páginas normalmente solo se pueden acceder enviando consultas a una base de datos (por ejemplo, al buscar un producto en una tienda en línea), y los rastreadores normales no pueden encontrarlas si no hay enlaces que apunten directamente a ellas. Protocolos como Sitemaps de Google y Mod_oai están diseñados para ayudar a descubrir estos recursos de la web profunda.
El rastreo de la web profunda también aumenta la cantidad de enlaces web que hay que explorar. Algunos rastreadores solo toman algunas de las URL que aparecen como enlaces. En otros casos, como el de Googlebot, el rastreo se realiza sobre todo el texto que se encuentra en la página, incluyendo etiquetas y contenido.
Se pueden usar enfoques especiales para acceder al contenido de la web profunda. Con una técnica llamada "extracción de datos de pantalla", se puede personalizar un software para consultar automáticamente un formulario web específico varias veces con el objetivo de recopilar los datos resultantes. Este software puede usarse para explorar varios formularios web en diferentes sitios. Los datos extraídos de un formulario pueden usarse como entrada para otro, creando una conexión a través de la Web Profunda que no es posible con los rastreadores web tradicionales.
Las páginas creadas con AJAX (una tecnología que permite actualizar partes de una página sin recargarla completamente) también pueden causar problemas a los rastreadores. Google ha propuesto un formato para las llamadas AJAX que su bot puede reconocer e indexar.
Preferencia de rastreadores
Un estudio reciente basado en el análisis de los archivos robots.txt mostró que algunos rastreadores web son preferidos sobre otros, siendo Googlebot el rastreador web más popular.
Ejemplos de rastreadores web
A continuación, se presenta una lista de algunos rastreadores web conocidos:
Rastreadores web históricos
- World Wide Web Worm: Fue un rastreador que se usó para crear un índice simple de títulos de documentos y URL.
- Yahoo! Slurp: Era el nombre del rastreador de Yahoo! Search antes de que Yahoo! empezara a usar Bingbot de Microsoft.
Rastreadores web internos (de grandes empresas)
- Applebot: Es el rastreador web de Apple, que ayuda a Siri y otros productos.
- Bingbot: Es el rastreador web de Microsoft Bing. Reemplazó a Msnbot.
- Baiduspider: Es el rastreador web de Baidu, un motor de búsqueda chino.
- Googlebot: El rastreador de Google. Se sabe que fue escrito en C++ y Python. Está integrado en el proceso de indexación, analizando el texto para buscar enlaces y contenido.
- WebCrawler: Se usó para construir el primer índice de texto completo disponible públicamente de una parte de la web.
- WebFountain: Un rastreador distribuido y modular, similar a Mercator, pero escrito en C++.
- Xenon: Un rastreador web usado por autoridades fiscales para detectar fraudes.
Rastreadores web comerciales
Estos rastreadores web están disponibles para comprar:
- SortSite: Un rastreador para analizar sitios web, disponible para Windows y Mac OS.
- Swiftbot: Un rastreador web de Swiftype, disponible como un servicio en línea.
Rastreadores de código abierto
Estos rastreadores son gratuitos y su código es público:
- GNU Wget: Un rastreador de línea de comandos escrito en C, usado a menudo para copiar sitios web y archivos FTP.
- GRUB: Un rastreador de búsqueda distribuido que Wikia Search usaba.
- Heritrix: El rastreador de Internet Archive, diseñado para guardar copias periódicas de una gran parte de la web. Está escrito en Java.
- ht://Dig: Incluye un rastreador web en su motor de indexación.
- HTTrack: Usa un rastreador web para crear una copia de un sitio web para verla sin conexión a Internet. Está escrito en C.
- MnoGoSearch: Un rastreador, indexador y motor de búsqueda escrito en C.
- Apache Nutch: Un rastreador web muy flexible y escalable escrito en Java, basado en Apache Hadoop.
- Open Search Server: Un motor de búsqueda y software de rastreo web.
- PHP-Crawler: Un rastreador sencillo basado en PHP y MySQL.
- Scrapy: Un marco de trabajo de código abierto para rastreo web, escrito en python.
- Seeks: Un motor de búsqueda distribuido de forma gratuita.
- StormCrawler: Una colección de herramientas para construir rastreadores web escalables y rápidos en Apache Storm.
- tkWWW Robot: Un rastreador basado en el navegador web tkWWW.
- Xapian: Un motor de rastreo de búsqueda, escrito en C++.
- YaCy: Un motor de búsqueda distribuido y gratuito, basado en redes de igual a igual.
Véase también
En inglés: Web crawler Facts for Kids