WWW ROBOTS

 

ALUMNO: José Antonio Robles Ordóñez

CURSO: 96/97 3º B

WWW ROBOTS

 

  1. - INTRODUCCIÓN
  2. - DEFINICIÓN DE CONCEPTOS
  1. -¿Que es un Robot?
  2. - Agentes
  3. - Motores de Búsqueda
  4. - Otros Tipos de Robots
  1. - ¿PARA QUE SIRVEN ?
  1. - Indexado
  2. - Análisis Estadístico
  3. - Validación de Páginas HTML
  4. - Mantenimiento de Enlaces
  5. - Monitorización de Información Nueva
  6. - Mirroring
  1. - COSTES OPERACIONALES Y RIESGOS
  1. - Recursos de Red y Carga en el Servidor
  2. - Sobrecarga por Actualización
  3. - Malas Implementaciones
  1. -ROBOTS DE INDEXADO
  1. - Introducción
  2. - ¿Como Decide un Robot que Visitar ?
  3. - ¿Como Decide que Indexar ?
  1. - EXCLUSION DE ROBOTS
  1. - Introducción
  2. - Protocolo sobre Exclusión de Robots
  3. - Tags HTML para Robots

BIBLIOGRAFÍA

 

1. INTRODUCCIÓN

Internet a lo largo de los años en los que lleva funcionando se ha ido expandiendo vertiginosamente a lo largo del mundo, esta expansión ha conllevado que el incremento de información útil en la red sea muy elevado [1]. Cuando se tiene tal cantidad de información aparecen problemas a la hora de tratarla, ya sea para su consulta u otro objetivo, debido a esto y unido a que dicha información se encuentra muy dispersa a lo largo de la Web aparece la necesidad de crear programas que automaticen el proceso, creándose sobre 1993 el primer robot en Internet

 

2. DEFINICIÓN DE CONCEPTOS

 

  1. ¿Que es un robot ?

Un robot o robot de la Web es un programa que automáticamente recorre la estructura de hipertexto de la Web buscando un documento y recursivamente devuelve los documentos al que este hace referencia, aplicándole a estos el mismo proceso. El término ‘recursivamente’ no está limitado al uso normal de la recursión ya que pueden ser usados distintos criterios de selección del siguiente documento a visitar ( los más usados son los heurísticos ).

Los robots suelen ser confundidos con los navegadores de Internet no perteneciendo estos a los robots debido a que sus acciones son indicadas por la persona que está usando el navegador.

Otras formas de llamar estos robots son : Web Wanderers, Web Crawlers, Spiders, Bots, InfoBots, Web Worms. Algunos de estos nombres hacen referencia a los robots pero normalmente cada uno tiene sus matices.

  1. Agentes

Existen varios tipos de agentes, los mas conocidos son :

Agentes Autónomos : Son programas que viajan entre servidores, decidiendo por ellos mismos cuando moverse y que hacer en los servidores.

Agentes Inteligentes : Son programas que ayudan al usuario en cosas rutinarias, como asistentes de ayudas, asistentes para formularios, etc. Normalmente no están ligados a temas de redes.

Agentes de usuarios ( Clientes ) : Es el nombre técnico para programas que realizan tareas sobre redes como los clientes de Web ( Netscape, Internet Explorer, etc.), clientes de correo electrónico ( Qualcomm Eudora, etc. ).

  1. Motores de Búsqueda

Los motores de búsqueda son programas que buscan información ,indicada por el usuario, en una base de datos. La base de datos normalmente está creada por los documentos recogidos por los robots a servicio de la empresa que mantiene el motor de búsqueda. El primer motor de búsqueda fue Yahoo [2], aunque desde su aparición el número de estos motores han aumentado bastante.

 

  1. Otros Tipos de Robots

Partiendo de la definición de robot se irán especificando otros tipos de robots que tienen características especiales.

Spiders : Idéntico a un robot pero tiene una mayor connotación en los medios de comunicación.

Worms : Igual que los robots pero técnicamente un gusano (worm) es un programa que se replica y los robots no.

Web Crawlers : Igual que los robots ; existe un motor de búsqueda que se llama WebCrawler.

Web Ants : Son robots cooperativos distribuidos, es decir robots repartidos por uno o varios servidores que unen sus esfuerzos para un fin común.

Bots : Igual que un robot pero tiene un uso mas cercano al usuario no experto.

InfoBots : Igual que el anterior pero más especializado en la recolección de información.

  1. ¿ PARA QUE SIRVEN ?

 

  1. Indexado

Cuando un robot obtiene un documento necesita guardar la información que contiene en una base de datos, a este proceso se le llama indexado. El robot decide que palabras debe de introducir en la base de datos, incluso puede introducir el documento entero, esto depende del robot y de la forma en que esté programado.

El indexado o robots de indexado son los usados para crear las bases de datos de los motores de búsqueda. Las empresas que ofrecen el motor de búsqueda se dedican a ejecutar un robot o varios robots para que les vayan enviando información , que luego será indexada en la base de datos.

 

  1. Análisis Estadístico

El primer robot que apareció en Internet fue The Wanderer[1] y se diseñó para contar el numero de servidores Web que existían en la red. Se han seguido usando este tipo de robots con otros fines tales como :

- Obtener el número medio de documentos por servidor.

- La proporción de algún tipo de ficheros en los servidores.

- Tamaño medio de una página Web.

- Medir el grado de interconexión.

 

  1. Validación de Páginas HTML

Este uso sirve para comprobar que las paginas HTML que existen en un servidor o servidores están funcionando de forma correcta.

 

  1. Mantenimiento de Enlaces

En el transcurso del mantenimiento de un servidor básicamente ocurren dos cosas, se añaden páginas nuevas y se eliminan antiguas. Debido al crecimiento rápido del número de páginas en un servidor al cabo de un tiempo comienzan a aparecer enlaces muertos, es decir, enlaces en una página que apuntan o señalan a otra que no existe, esto ocurre de forma más grave cuando los enlaces que contienen las páginas hacen referencia a servidores distintos a los que se están administrando ya que estos pueden desaparecer, dar un servicio de mala calidad etc.. Para este tipo de problemas existen robots específicos que van recorriéndose la estructura de ficheros HTML del servidor y comprobando que sus enlaces están operativos.

Un robot que efectúa esta tarea es el MOMspider[3].

 

  1. Monitorización de Información Nueva

Debido al crecimiento comentado en los puntos anteriores, sabemos que nueva información es añadida a los servidores constantemente, esto unido a que los procesos de indexación son bastantes costosos debido al precio que se debe de pagar por usar un enlace así como el gasto computacional hacen que una nueva indexación partiendo de cero sea inviable. Esto se soluciona respetando la información existente en la base de datos y añadiendo lo que el robot nos devuelve como algo nuevo.

Siguiendo está filosofía de trabajo podría darse el caso de que información de la base de datos se crea que es válida no siéndolo, debido a una actualización o desaparición de la página Web a la que se hace referencia, por lo que este método se suele usar conjuntamente con los demás métodos [3.1,3.2,3.3,3.6].

 

  1. Mirroring

En Internet el termino mirroring hace referencia a la acción de copiar y hacer una imagen especular de un servidor de Internet en otro servidor, convirtiéndose este último en espejo del primero. El mirroring se suele usar para :

- Duplicar al servidor maestro para evitar fallos.

- Descargar al servidor principal de la atención de todos los usuarios

- Colocación en un área cercana de una copia de un servidor, que por sus características esta muy saturado. Colocándose la copia cerca se consigue un aumento de los ratios de transferencia.

 

  1. COSTES OPERACIONALES Y RIESGOS

     

  1. Recursos de Red y Carga en el Servidor

Una de las características de los robots es que demandan mucho ancho de banda ya que van a transferir muchos datos. Los primeros robots operaron continuamente durante un largo periodo de tiempo ( meses ). Los programadores para obtener mucha más velocidad lo que hicieron es trabajar con robots distribuidos que usaban mucho ancho de banda, sobre todo en las cercanías del servidor , esto hacia que se perdiesen muchos recursos si que aparentemente nadie los usara, en realidad si eran usados por los robots.

Además de requerir grandes anchos de banda, también llevan asociados un uso de recursos en el servidor que está atendiendo un robot. Estos recursos serán más requeridos cuanto más frecuentemente se le hagan peticiones al servidor el cual puede llegar a momentos de carga excesiva, lo que conlleva que baje la calidad del servicio para los demás usuarios del servidor.

Como ejemplo de lo que puede ocurrir Martijn Koster[4], realizó una prueba con 20 robots concurrentes en su servidor un Sun 4/330 con Plexus. Con unas peticiones de unos minutos entre petición y petición el servidor se comportaba bien, bajando un poco su rendimiento. Con algunas peticiones consecutivas todo parecía también ir bien pero después de 170 peticiones consecutivas el servidor sufrió un bloqueo debido a la carga extra, demostrando que las peticiones rápidas y continuadas no deben de ser permitidas. Se da el caso de que los navegadores modernos ( ej. Netscape) contribuyen a este problema pidiendo las imágenes en línea de forma concurrente, esto es debido a que el protocolo HTTP[7] es ineficiente en este tipo de transferencias [5], y nuevos protocolos están siendo diseñados para remediar esto [6]

 

  1. Sobrecarga por Actualización

Anteriormente se comento que las bases de datos principalmente usadas por los motores de búsqueda podían ser automáticamente actualizadas mediante un robot. Por desgracia esta operación no es eficiente debido a que se deben de visitar los distintos servidores a los que se hacen referencia, se debe de cotejar la información para modificar los cambios, etc. Este problema puede ser casi resuelto con los time-stamp que se introducen en las cláusulas "If-Modified-Since"[5] en los ficheros HTML, en las que se guarda un identificador el cual comprueba el robot y si es distinto al almacenado en su base de datos entonces pedirá la página y la tratará.

 

  1. Malas Implementaciones

Las malas implementaciones llegan a sobrecargar de forma excesiva a los servidores que son visitados por los robots. Estas implementaciones aunque parezcan que realmente funcionan, es decir, trabajan aparentemente de forma correcta tienen unos fallos que son difíciles de ver. A veces no se tiene en cuenta que distintos alias de un servidor o dirección URL tienen asignada la misma dirección IP, visitando por lo tanto dos o más veces el mismo servidor, incluso se visitan dos niveles de subdirectorios debido al uso de representaciones relativas, es decir, no se tiene en cuenta la representación canónica de los directorios ej. /pub/msdos/../index.html sería igual que /pub/index.html.

También nos podemos encontrar con que un robot pida ficheros que no los puede tratar, por ejemplo ficheros gráficos. Incluso pueden caer en una rama de recursión cuasi-infinita si por ejemplo va siguiendo los enlaces y se encuentra con directorios de la forma : /pub/b, /pub/b/b, /pub/b/b/b ...., este tipo de directorios son conocidos como ‘agujeros negros’ ya que si un robot cae dentro de uno de ellos es muy difícil que salga de su recursión.

 

  1. ROBOTS DE INDEXADO

 

  1. Introducción

Como se comento anteriormente [3.1] el indexado servía para que a partir de una serie de páginas Web se obtuviese una base de datos por la cual buscando por una palabra clave se obtendría información relacionada con ella, entre esta información la más importante es la URL o URL’s que la contenía.

El indexado se ha convertido en la parte más visible y se puede decir que casi la más importante en la World Wide Web y más concretamente en su aplicación en los motores de búsqueda haciendo a estas aplicaciones unas de las más usadas, tanto es así que el éxito de un buen motor de búsqueda depende fuertemente de lo buena que sea su base de datos, a parte de su velocidad de consulta, etc.

Un robot de indexado no se puede encasillar como una sola aplicación, estará formado realmente por varios robots distribuidos que le van enviando información a un programa que clasifique la información y este a su vez lo enviará al motor de la base de datos. Como se puede observar este tipo de aplicaciones distribuidas, que trabajan de forma conjunta pueden representar distintas topología

 

  1. ¿ Como Decide un Robot que Visitar ?

Las direcciones o URL que visitan un robot depende del tipo de robot y de la estrategia que siga. En general se suele comenzar partiendo de una lista de URLs, principalmente una lista de servidores, páginas del tipo "What’s New" y de los servidores mas populares en la Web.

La mayoría de los servicios de indexado permiten al usuario introducir su URL manualmente, para ser encolada y luego visitada por el robot.

Tomando estos puntos de partida un robot puede seleccionar las URL para visitar e indexar, que además serán usadas como fuente de nuevas URL’s.

 

  1. ¿Como Decide que Indexar ?

Al igual que el punto anterior depende del tipo de robot que se esté usando, normalmente se suelen indexar el titulo de la página, los primeros párrafos de la página, la página al completo, partes que se consideren con mayor importancia ( títulos, índices, ...). Últimamente se están usando los tags del HTML en concreto los de tipo META y algunos tags especiales.

El usar solo el título de la página nos va a ofrecer poca información de su contenido, pero indexar la página al completo puede desbordar la base de datos. Para obtener un compromiso entre efectividad y tamaño de la base de datos el mejor método a usar es el de los META tags , en los que el creador de la página los introduce para resaltar información general del documento ej. "<meta name="Keywords" value="Ford Car Maintenance">. Este tipo de tags tienen el problema de que aún no se les han añadido capacidades semánticas para valores específicos del tag, lo que restringe mucho su uso y por lo tanto su popularización.

Las uniones de estos conceptos, junto a algunos nuevos de reciente aparición como pueden ser las operaciones lógicas, están haciendo cada día más eficiente el indexado tanto como en espacio como en calidad de la información.

 

6. EXCLUSION DE ROBOTS

 

6.1 Introducción

La exclusión frente a robots es un tema que se debe de tener muy en cuenta ya que como se ha comentado [4.1], los servidores pueden verse sobrecargados por la visita continua de robots, o puede darse el caso de que ciertas partes del servidor no se desea que sean visitadas. Existen métodos para que los creadores de páginas HTML y los administradores de los servidores prevengan a sus máquinas de las visitas de los robots. Estos métodos son dos básicamente, el protocolo sobre exclusión de robots y el otro son los tags HTML específicos para robots. El primero de ellos se consigue introduciendo unos ficheros dentro del servidor con un formato especifico, siendo leídos por los robots para observar sus permisos. Los tags son usados para indicar dentro de la página HTML los permisos que tiene frente a los robots.

 

6.2 Protocolo sobre Exclusión de robots

Este protocolo básicamente consiste en colocar un fichero ASCII llamado robots.txt con un formato específico. Lo primero que hace un robot antes de pasar a obtener páginas es comprobar que existe la URL ( supongamos que el servidor es www.uma.es ) www.uma.es :/robots.txt , en caso afirmativo lee las instrucciones incluidas en el fichero, en caso negativo pasa al servidor sin restricciones.

El robot busca el fichero ‘/robots.txt’ en el servidor, si tenemos un servidor de HTTP[7] ejecutándose en un host y en un puerto, entonces tenemos las siguientes localizaciones :

URL del Servidor

URL para el fichero robots.txt

http ://www.uma.es/

http ://www.uma.es/robots.txt

http ://www.uma.es :80/

http ://www.uma.es :80/robots.txt

http ://www.uma.es :1234/

http ://www.uma.es :1234/robots.txt

http ://uma.es/

http ://uma.es/robots.txt

Hay que destacar que solo debe de existir un solo fichero ‘/robots.txt’ de forma que si existe otro ‘robots.txt’ en otro subdirectorio no será tenido en cuenta. Si se desea que puedan existir distintas instrucciones según los directorios en los que se encuentre el robot se debe de recurrir a los tags HTML [6.3].

También hay que tener en cuenta que las URL son sensibles a mayúsculas y minúsculas así que el nombre exacto del fichero debe de ser ‘robots.txt’.

El fichero ‘/robots.txt’ debe de tener una estructura como la siguiente :

User-agent : *

Disallow : /cgi-bin/

Disallow : /tmp/

Disallow : /~joe/

En este ejemplo tres directorios han sido excluidos.

Características del fichero ‘/robots.txt’ :

- Debe de tener una línea ‘Disallow’ por cada directorio a excluir

- No debe de tener líneas en blanco ya que se usa como separador de registros

- Solo es permitida la expresión regular ‘*’ en la cláusula User-agent para indicar cualquier robot

Por defecto si no se dice nada al respecto se tendrá acceso a todos los directorios, pero si se desea dar derecho explícito se debe de usar la cláusula ‘Allow : /directorio’

 

Ejemplos :

Para excluir a todos los robots del servidor :

User-agent : *

Disallow : /

Para permitir a todos los robots acceso completo :

User-agent : *

Disallow :

( También se puede crear un fichero ‘/robots.txt’ que esté vacio)

Para excluir a todos los robots de una parte del servidor :

User-agent : *

Disallow : /cgi-bin/

Disallow : /tmp/

Disallow : /private/

Para excluir a un solo robot :

User-agent : BadBot

Disallow : /

Para permitir acceso a un solo robot :

User-agent : WebCrawler

Disallow :

User-agent : *

Disallow : /

Para excluir un fichero :

User-agent : *

Disallow : /index.html

 

6.3 Tags HTML para robots

Esta técnica es usada para indicarle a los robots que la visitan si debe de ser tratada para indexarse, si se deben de seguir sus enlaces o si la recursión debe de parar en el, etc. Realmente es la más flexible y aunque algunos robots no la reconocen muchas páginas están adoptando esta filosofía.

El formato del tag para robots es :

<META NAME="ROBOTS" CONTENT="ALL | NONE | NOINDEX | NOFOLLOW | INDEX | FOLLOW" >

Donde ‘<META NAME="ROBOTS" CONTENT= ‘ es obligatorio y deberá ir seguido de una o mas de las palabras reservadas indicadas. El significado de cada una de ellas es el siguiente :

 

INDEX : Indica que la página puede ser indexada

FOLLOW : Indica que los enlaces incluidos en la página pueden ser tratados

NOINDEX : Significa que la página no debe de ser indexada

NOFOLLOW : Indica que los enlaces no deben de ser tenidos en cuenta

ALL : Indica INDEX y FOLLOW

NONE : Significa NOINDEX y NOFOLLOW

BIBLIOGRAFÍA

[1] : Gray, M. "Growth of the World-Wide Web," Dec. 1993. http://www.mit.edu:8001/aft/sipb/user/mkgray/ht/web-growth.html

[2] : Yahoo : http ://www.yahoo.com

[3] : MOMspider : e-mail : fielding@ics.uci.edu

[4] : Martin Koster : http ://info/webcrawler.com/mak/mak.html

[5] : Spero, S. "Analysis of HTTP Performance problems" July 1994 http://sunsite.unc.edu/mdma-release/http-prob.html

[6] : Spero, S. "Progress on HTTP-NG". http://info.cern.ch/hypertext/www/Protocols/HTTP-NG/http-ng-status.html

[7] : HiperText Transfer Protocol : ftp://nic.merit.edu/documents/internet-rafts/draft-fielding-http-spec-00.txt

[8] : Koster, M., "A Standard for Robot Exclusion," http://info.webcrawler.com/mak/projects/robots/exclusion.html

[9] : Koster, Martijn. "Guidelines for Robot Writers". 1993. http://info.webcrawler.com/mak/projects/robots/guidelines.html

[10] : Koster, Martijn. "WWW Robots, Wanderers and Spiders". http://info.webcrawler.com/mak/projects/robots/robots.html