Araña web
Un rastreador web, indexador web, indizador web o araña web es un programa informático que inspecciona las páginas del World Wide Web de forma metódica y automatizada.[1] Uno de los usos más frecuentes que se les da consiste en crear una copia de todas las páginas web visitadas para su procesado posterior por un motor de búsqueda que indexa las páginas proporcionando un sistema de búsquedas rápido. Las arañas web suelen ser bots.[2]
Las arañas web comienzan visitando una lista de URL, identifica los hiperenlaces en dichas páginas y los añade a la lista de URL a visitar de manera recurrente de acuerdo a determinado conjunto de reglas. La operación normal es que se le da al programa un grupo de direcciones iniciales, la araña descarga estas direcciones, analiza las páginas y busca enlaces a páginas nuevas. Luego descarga estas páginas nuevas, analiza sus enlaces, y así sucesivamente.
Entre las tareas más comunes de las arañas de la web tenemos:
- Crear el índice de una máquina de búsqueda.
- Analizar los enlaces de un sitio para buscar links rotos.
- Recolectar información de un cierto tipo, como precios de productos para recopilar un catálogo.
Información general
Un buen rastreador web comienza con una lista de direcciones URL para visitar, llamado “las semillas” . A medida que el rastreador visita estas direcciones URL, identifica todos los hipervínculos en la página y los añade a la lista de URL para visitar, llamada la frontera de rastreo . URL de la frontera se forma recursiva visitadas de acuerdo con un conjunto de políticas. Si el rastreador está realizando el archivo de los sitios web se copia y guarda la información a medida que avanza. Los archivos se almacenan por lo general de tal manera que se puedan ver, leer y navegar como lo fueron en la web en directo, pero se conservan como "instantáneas".
El gran volumen implica al rastreador que sólo puede descargar un número limitado de las páginas Web en un tiempo determinado, por lo que necesita dar prioridad a sus descargas. La alta tasa de cambio puede implicar a las páginas que podría ya haber sido actualizados o incluso eliminado.
El número de posibles URL rastreadas siendo generados por el software del lado del servidor también ha hecho que sea difícil para los rastreadores web para evitar recuperar el contenido duplicado.
Un sinfín de combinaciones de HTTP GET existen parámetros (basados en URL), de los cuales sólo una pequeña selección anterior obtiene un contenido único. Por ejemplo, un simple galería de fotos en línea puede ofrecer tres opciones a los usuarios, tal como se especifica a través de parámetros HTTP GET en la URL. Si existen cuatro formas de ordenar las imágenes, tres opciones de tamaño miniatura, dos formatos de archivo, y una opción para desactivar el contenido proporcionado por el usuario, a continuación, el mismo conjunto de contenidos se puede acceder con 48 direcciones URL diferentes, todos los cuales pueden estar vinculados en el sitio. Esta combinación matemática crea un problema para los rastreadores, ya que deben ordenar a través de un sinfín de combinaciones de secuencias de comando, cambios relativamente menores con el fin de recuperar el contenido único.
"Teniendo en cuenta que el ancho de banda para la realización de rastreos no es ni infinito ni libre, se hace indispensable para rastrear la Web, no sólo en una forma escalable, pero eficiente, sino también alguna medida razonable de calidad o frescura debe ser mantenido." Un rastreador debe elegir con cuidado en cada paso qué página siguiente visitar siempre.
Política de Arrastre o Rastreo
El comportamiento de un buscador web es el resultado de una combinación de políticas:[3]
- una política de selección que establece las páginas de descarga,
- una política de revisita que establece cuándo debe buscar cambios en las páginas,
- una política de cortesía que indica cómo evitar la sobrecarga de los sitios Web , y
- una política de paralelización que indica la forma de coordinar los rastreadores web distribuidos
Política de selección
Teniendo en cuenta el tamaño actual de la Web, incluso los grandes motores de búsqueda cubren sólo una porción de la parte a disposición del público. Un estudio de 2009 mostró incluso a gran escala de los motores de búsqueda índice de no más de 40-70% de la Web indexable; un estudio previo realizado por Steve Lawrence y Lee Giles mostró que ningún motor de búsqueda indexa más de un 16% de la Web en 1999. Como rastreador siempre se descarga sólo una fracción de las páginas web, es altamente deseable para la fracción descargado poder contener las páginas más relevantes y no sólo una muestra aleatoria de la web.
Esto requiere una métrica de importancia para la priorización de las páginas Web. La importancia de una página es una función de su calidad intrínseca, su popularidad en términos de enlaces o visitas, e incluso de su URL (este último es el caso de los motores verticales de búsqueda restringidos a un único dominio de nivel superior, o motores de búsqueda restringidas a un sitio web fija). El diseño de una buena política de selección tiene una dificultad añadida: tiene que trabajar con información parcial, ya que el conjunto completo de páginas web no se conoce durante el rastreo.
Junghoo Cho et al. hicieron el primer estudio sobre las políticas para el rastreo de programación. Su conjunto de datos estaba a 180.000 páginas se arrastran desde el stanford.edu
de dominio, en el que una simulación de rastreo se realizó con diferentes estrategias. Las métricas de pedido probados fueron primero en amplitud, vínculo de retroceso recuento y parciales cálculos Pagerank. Una de las conclusiones fue que si el rastreador quiere descargar páginas con alto Pagerank temprana durante el proceso de rastreo, entonces la estrategia Pagerank parcial es la mejor, seguida de primero en amplitud y vínculo de retroceso de recuento. Sin embargo, estos resultados son para un solo dominio. Cho también escribió su Ph.D. tesis doctoral en Stanford en el rastreo web.[4]
Najork y Wiener realizaron un rastreo de 328 millones de páginas, utilizando una búsqueda de anchura.[5] Descubrieron que un rastreo de búsqueda de anchura captura las páginas con alto Pagerank al principio del rastreo (pero no compararon esta estrategia con otras). La explicación que dan los autores para este resultado es que "las páginas más importantes tienen muchos enlaces hacia ellas desde numerosos hosts, y esos enlaces se encontrarán pronto, independientemente de en qué host o página se origine el rastreo".
Abiteboul diseñó una estrategia de rastreo basada en un algoritmo llamado OPIC (On-line Page Importance Computation).[6] En el OPIC, cada página recibe una suma inicial de "dinero" que se distribuye por igual entre las páginas a las que apunta. Es similar al cálculo del PageRank, pero es más rápido y sólo se realiza en un paso. Un rastreador impulsado por OPIC descarga primero las páginas de la frontera de rastreo con mayores cantidades de "efectivo". Los experimentos se llevaron a cabo en un gráfico sintético de 100.000 páginas con una distribución de ley potencial de los enlaces internos. Sin embargo, no hubo comparación con otras estrategias ni experimentos en la web real.
Baeza-Yates et al. utilizaron la simulación en dos subconjuntos de la web de 3 millones de páginas del dominio .gr
y .cl
, probando varias estrategias de rastreo.[7] Demostraron que tanto la estrategia OPIC como una estrategia que utiliza la longitud de las colas por sitio son mejores que el rastreo búsqueda de anchura, y que también es muy eficaz utilizar un rastreo anterior, cuando está disponible, para guiar el actual.
Daneshpajouh et al. diseñaron un algoritmo basado en la comunidad para descubrir buenas semillas.[8] Su método rastrea páginas web con alto PageRank de diferentes comunidades en menos iteraciones en comparación con el rastreo que parte de semillas aleatorias. Uno puede extraer buenas semillas de un gráfico web previamente rastreado utilizando este nuevo método. Usando estas semillas, un nuevo rastreo puede ser muy efectivo.
Restringir los siguientes enlaces
Un rastreador puede querer buscar sólo páginas HTML y evitar todos los demás tipos MIME. Para solicitar sólo recursos HTML, un rastreador puede hacer una petición HTTP HEAD para determinar el tipo MIME de un recurso web antes de solicitar el recurso completo con una petición GET. Para evitar realizar numerosas peticiones HEAD, un rastreador puede examinar la URL y sólo solicitar un recurso si la URL termina con ciertos caracteres como .html
, .htm
, .asp
, .aspx
, .php
, .jsp
, .jspx
o una barra (/). Esta estrategia puede hacer que se omitan involuntariamente numerosos recursos web HTML.
Algunos rastreadores también pueden evitar solicitar cualquier recurso que tenga un "?" (se producen dinámicamente) para evitar las trampas de arañas que pueden hacer que el rastreador descargue un número infinito de URL de un sitio web. Esta estrategia no es fiable si el sitio utiliza la reescritura de URLs para simplificarlas.
Normalización de URLs
![](../I/Normalization_URL_Animation.gif)
Los rastreadores suelen realizar algún tipo de normalizaciones de URL para evitar rastrear el mismo recurso más de una vez. El término normalización de URL, también llamado canonización de URL, se refiere al proceso de modificación y normalización de una URL de manera consistente. Hay varios tipos de normalización que pueden realizarse, incluyendo la conversión de las URLs a minúsculas, la eliminación de los segmentos "." y "..", y la adición de barras (/) al final del componente de la ruta no vacía.[9]
Rastreo de rutas
Algunos rastreadores pretenden descargar/cargar tantos recursos como sea posible de un sitio web concreto. Para ello, se introdujo el rastreo ascendente, que asciende a todas las rutas de cada URL que pretende rastrear.[10] Por ejemplo, cuando se le da una URL inicial como http://llama.org/hamster/monkey/page.html, intentará rastrear /hamster/monkey/, /hamster/ y /. Cothey descubrió que un rastreador ascendente era muy eficaz para encontrar recursos aislados, o recursos para los que no se habría encontrado ningún enlace entrante en un rastreo normal.
Rastreo focalizado
La importancia de una página para un rastreador también puede expresarse en función de la similitud de una página con una consulta determinada. Los rastreadores web que intentan descargar páginas similares entre sí se denominan rastreadores enfocados o rastreadores tópicos. Los conceptos de rastreo tópico y enfocado fueron introducidos por primera vez por Filippo Menczer[11][12] y por Soumen Chakrabarti et al.[13]
El principal problema del rastreo enfocado es que, en el contexto de un rastreador web, nos gustaría poder predecir la similitud del texto de una página determinada con la consulta antes de descargar la página. Un posible predictor es el texto ancla de los enlaces; éste fue el enfoque adoptado por Pinkerton[14] en el primer rastreador web de los primeros días de la Web. Diligenti et al.[15] proponen utilizar el contenido completo de las páginas ya visitadas para inferir la similitud entre la consulta de conducción y las páginas que aún no han sido visitadas. El rendimiento de un rastreo enfocado depende sobre todo de la riqueza de los enlaces en el tema específico que se busca, y un rastreo enfocado suele depender de un motor de búsqueda web general para proporcionar puntos de partida.
Rastreador centrado en el ámbito académico
Un ejemplo de los rastreadores focalizados son los rastreadores académicos, que rastrean documentos académicos de libre acceso, como el citeseerxbot, que es el rastreador del motor de búsqueda CiteSeerX. Otros motores de búsqueda académica son Google Scholar y Microsoft Academic Search, etc. Dado que la mayoría de los documentos académicos se publican en formato PDF, este tipo de rastreador está especialmente interesado en rastrear archivos PDF, PostScript y Microsoft Word, incluidos sus formatos comprimidos. Por ello, los rastreadores generales de código abierto, como Heritrix, deben personalizarse para filtrar otros tipos de MIME, o bien se utiliza un middleware (lógica de intercambio de información entre aplicaciones) para extraer estos documentos e importarlos a la base de datos y al repositorio de rastreo enfocado.[16] Identificar si estos documentos son académicos o no es un reto y puede añadir una sobrecarga significativa al proceso de rastreo, por lo que se realiza como un proceso posterior al rastreo utilizando algoritmos de aprendizaje automático o de expresión regular. Estos documentos académicos suelen obtenerse de las páginas de inicio de las facultades y estudiantes o de páginas de publicaciones de los institutos de investigación. Dado que los documentos académicos representan sólo una pequeña fracción de las páginas web, es importante una buena selección de semillas para aumentar la eficacia de estos rastreadores web.[17] Otros rastreadores académicos pueden descargar archivos de texto plano y HTML que contienen metadatos de artículos académicos, como títulos, artículos y resúmenes. Esto aumenta el número total de artículos, pero una parte importante puede no ofrecer descargas gratuitas en PDF.
Rastreador enfocado en la semántica
Otro tipo de rastreadores enfocados es el rastreador enfocado en la semántica, que hace uso de ontologías de dominios para representar mapas tópicos y enlazar páginas web con conceptos ontológicos relevantes para la selección y categorización.[18] Además, las ontologías pueden actualizarse automáticamente en el proceso de rastreo. Dong et al.[19] introdujeron un rastreador basado en el aprendizaje de ontologías que utiliza una máquina de vectores de apoyo para actualizar el contenido de los conceptos ontológicos cuando se rastrean las páginas web.
Política de revisitas
La web tiene una naturaleza muy dinámica, y rastrear una fracción de la web puede llevar semanas o meses. Para cuando un rastreador de la web ha terminado su rastreo, pueden haber ocurrido muchos eventos, incluyendo creaciones, actualizaciones y eliminaciones.
Desde el punto de vista del motor de búsqueda, existe un coste asociado a la no detección de un evento y, por tanto, a tener una copia obsoleta de un recurso. Las funciones de coste más utilizadas son la novedad y la antigüedad.[20]
Novedad: Es una medida binaria que indica si la copia local es exacta o no. La novedad de una página p en el repositorio a tiempo t se define como:
Antigüedad: Es una medida que indica la antigüedad de la copia local. La antigüedad de una página p en el repositorio a tiempo t se define como:
Coffman et al. trabajaron con una definición del objetivo de un rastreador web que es equivalente a la novedad, pero utilizan una redacción diferente: proponen que un rastreador debe minimizar la fracción de tiempo que las páginas permanecen obsoletas. También señalaron que el problema del rastreo de la web puede modelarse como un sistema de sondeo de cola múltiple y servidor único, en el que el rastreador de la web es el servidor y los sitios web son las colas. Las modificaciones de las páginas son la llegada de los clientes, y los tiempos de espera son el intervalo entre los accesos a las páginas de un mismo sitio web. Según este modelo, el tiempo medio de espera de un cliente en el sistema de sondeo equivale a la edad media del rastreador web.[21]
El objetivo del rastreador es mantener en su colección la novedad de las páginas lo más alta posible, o mantener la antigüedad de las páginas lo más baja posible. Estos objetivos no son equivalentes: en el primer caso, el rastreador sólo se preocupa de cuántas páginas están desactualizadas, mientras que en el segundo caso, el rastreador se preocupa de la antigüedad de las copias locales de las páginas.
Cho y García-Molina estudiaron dos políticas simples de revisita:[22]
- Política uniforme: Consiste en volver a visitar todas las páginas de la colección con la misma frecuencia, independientemente de sus tasas de cambio.
- Política proporcional: Consiste en volver a visitar con más frecuencia las páginas que cambian con más frecuencia. La frecuencia de visita es directamente proporcional a la frecuencia de cambio (estimada).
En ambos casos, el orden de rastreo repetido de las páginas puede hacerse de forma aleatoria o fija.
Cho y García-Molina demostraron el sorprendente resultado de que, en términos de novedad, la política uniforme supera a la política proporcional tanto en una web simulada como en un rastreo real. Intuitivamente, el razonamiento es que, como los rastreadores web tienen un límite en cuanto al número de páginas que pueden rastrear en un plazo determinado, (1) asignarán demasiados rastreos nuevos a las páginas que cambian rápidamente a expensas de las páginas que se actualizan con menos frecuencia, y (2) la frescura de las páginas que cambian rápidamente dura menos que la de las que cambian con menos frecuencia. En otras palabras, una política proporcional asigna más recursos al rastreo de las páginas que se actualizan con frecuencia, pero experimenta menos tiempo de novedad general de las mismas.
Para mejorar la novedad, el rastreador debe penalizar los elementos que cambian con demasiada frecuencia.[23] La política de revisita óptima no es ni la política uniforme ni la política proporcional. El método óptimo para mantener una novedad media alta incluye ignorar las páginas que cambian con demasiada frecuencia, y lo óptimo para mantener una antigüedad media baja es utilizar frecuencias de acceso que aumenten monótonamente (y de forma sublineal) con la tasa de cambio de cada página. En ambos casos, lo óptimo está más cerca de la política uniforme que de la proporcional: como señalan Coffman et al., "para minimizar el tiempo de obsolescencia esperado, los accesos a cualquier página particular deben mantenerse lo más uniformemente espaciados posible".[21] Las fórmulas explícitas para la política de revisita no son alcanzables en general, pero se obtienen numéricamente, ya que dependen de la distribución de los cambios de página. Cho y García-Molina muestran que la distribución exponencial es un buen ajuste para describir los cambios de página,[23] mientras que Ipeirotis et al. muestran cómo utilizar herramientas estadísticas para descubrir los parámetros que afectan a esta distribución,[24] hay que tener en cuenta que las políticas de revisita observadas aquí consideran que todas las páginas son homogéneas en términos de calidad ("todas las páginas de la web valen lo mismo"), algo que no es un escenario realista, por lo que debería incluirse más información sobre la calidad de la página web para lograr una mejor política de rastreo.
Política de cortesía
Los rastreadores pueden recuperar los datos mucho más rápido y con mayor profundidad que los humanos, por lo que pueden tener un impacto devastador en el rendimiento de un sitio. Si un solo rastreador realiza varias peticiones por segundo y/o descarga archivos de gran tamaño, un servidor puede tener dificultades para atender las peticiones de varios rastreadores.
Como señala Koster, el uso de rastreadores web es útil para una serie de tareas, pero tiene un precio para la comunidad en general.[25] Los costes de usar rastreadores web incluyen:
- Recursos de red, ya que los rastreadores requieren un ancho de banda considerable y funcionan con un alto grado de paralelismo durante un periodo largo de tiempo;
- la sobrecarga de los servidores, especialmente si la frecuencia de los accesos a un determinado servidor es demasiado elevada;
- rastreadores mal escritos, al poder colapsar servidores o routers, o que descargan páginas que no pueden manejar; y
- rastreadores personales que, si son desplegados por demasiados usuarios, pueden alterar las redes y los servidores web.
Una solución parcial a estos problemas es el estándar de exclusión de robots, también conocido como protocolo robots.txt. Se trata de un estándar para que los administradores indiquen a qué partes de sus servidores web no deben acceder los rastreadores.[26] Este estándar no incluye una sugerencia para el intervalo de visitas al mismo servidor, aunque este intervalo es la forma más eficaz de evitar la sobrecarga del servidor. Los motores de búsqueda comerciales, como Google, Ask Jeeves, MSN y Yahoo! Search, pueden utilizar un parámetro adicional "Retraso de rastreo": un parámetro en el archivo robots.txt para indicar el número de segundos de retraso entre peticiones.
El primer intervalo propuesto entre las sucesivas cargas de páginas fue de 60 segundos.[27] Sin embargo, si las páginas se descargaran a este ritmo desde un sitio web con más de 100.000 páginas a través de una conexión perfecta con latencia cero y ancho de banda infinito, se tardaría más de 2 meses en descargar sólo ese sitio web completo; además, sólo se utilizaría una fracción de los recursos de ese servidor web.
Cho utiliza 10 segundos como intervalo para los accesos,[22] y el rastreador WIRE utiliza 15 segundos por defecto.[28] El rastreador MercatorWeb sigue una política de cortesía adaptativa: si ha tardado t segundos en descargar un documento de un servidor determinado, el rastreador espera 10t segundos antes de descargar la siguiente página.[29] Dill et al. utilizan 1 segundo.[30]
Para quienes utilizan rastreadores web con fines de investigación, es necesario un análisis más detallado respecto a la relación coste-beneficio y se debe tener en cuenta consideraciones éticas a la hora de decidir dónde rastrear y a qué velocidad hacerlo.[31]
Las pruebas anecdóticas de los registros de entrada muestran que los intervalos de acceso de los rastreadores conocidos varían entre 20 segundos y 3-4 minutos. Cabe destacar que, incluso siendo muy educados y tomando todas las precauciones para evitar la sobrecarga de los servidores web, se reciben algunas quejas de los administradores de servidores web. Brin y Page señalan que: "... ejecutar un rastreador que se conecta a más de medio millón de servidores (...) genera una buena cantidad de correos electrónicos y llamadas telefónicas. Debido al gran número de personas que se conectan, siempre hay quienes no saben lo que es un rastreador, porque es el primero que ven".[32]
Política de paralelización
Un rastreador paralelo es un rastreador que ejecuta múltiples procesos en paralelo. El objetivo es maximizar la tasa de descarga minimizando la sobrecarga de la paralización y evitar descargas repetidas de la misma página. Para evitar descargar la misma página más de una vez, el sistema de rastreo requiere una política de asignación de las nuevas URLs descubiertas durante el proceso de rastreo, ya que la misma URL puede ser encontrada por dos procesos de rastreo diferentes.
Arquitectura
Un rastreador no sólo debe tener una buena estrategia de rastreo, como se ha señalado en las secciones anteriores, sino que también debe tener una arquitectura muy optimizada.
Shkapenyuk y Suel señalaron:[33]
![](../I/WebCrawlerArchitecture.png.webp)
Mientras que es bastante fácil construir un rastreador lento que descargue unas pocas páginas por segundo durante un corto período de tiempo, construir un sistema de alto rendimiento que pueda descargar cientos de millones de páginas durante varias semanas presenta una serie de desafíos en el diseño del sistema, la eficiencia de E/S y de la red, y la robustez y capacidad de gestión.
Los rastreadores web son una parte central de los motores de búsqueda, y los detalles sobre sus algoritmos y arquitectura se mantienen como secretos comerciales. Cuando se publican los diseños de los rastreadores, suele haber una importante falta de detalles que impide que otros reproduzcan el trabajo. También está surgiendo la preocupación por el "spam de los motores de búsqueda", que impide que los principales motores de búsqueda publiquen sus algoritmos de clasificación.
Seguridad
Aunque la mayoría de los propietarios de sitios web desean que sus páginas se indexen lo más ampliamente posible para tener una fuerte presencia en los motores de búsqueda, el rastreo de la web también puede tener consecuencias no deseadas y conducir a un compromiso o a una violación de datos si un motor de búsqueda indexa recursos que no deberían estar disponibles públicamente, o páginas que revelan versiones de software potencialmente vulnerables.
Artículo principal: Google hacking
Aparte de las recomendaciones estándar de seguridad de las aplicaciones web, los propietarios de sitios web pueden reducir su exposición a la piratería oportunista permitiendo que los motores de búsqueda indexen únicamente las partes públicas de sus sitios web (con robots.txt) y bloqueando explícitamente la indexación de las partes transaccionales (páginas de acceso, páginas privadas, etc.).
Identificación del rastreador
Los rastreadores web suelen identificarse ante un servidor web utilizando el campo agente de usuario de una solicitud HTTP. Los administradores de sitios web suelen examinar el registro de sus servidores web y utilizar el campo de agente de usuario para determinar qué rastreadores han visitado el servidor web y con qué frecuencia. El campo de agente de usuario puede incluir una URL donde el administrador del sitio web puede encontrar más información sobre el rastreador.
Examinar el registro del servidor web es una tarea tediosa, por lo que algunos administradores utilizan herramientas para identificar, rastrear y verificar los rastreadores web. Es poco probable que los Spambots y otros rastreadores web malintencionados coloquen información de identificación en el campo del agente de usuario, o pueden enmascarar su identidad como un navegador u otro rastreador conocido.
Los administradores de sitios web prefieren que los rastreadores se identifiquen para poder contactar con el propietario en caso de necesidad. En algunos casos, los rastreadores pueden quedar atrapados accidentalmente en una trampa para rastreadores o pueden estar sobrecargando un servidor web con peticiones, por lo que el propietario necesita detener el rastreador. La identificación también es útil para los administradores que están interesados en saber cuándo pueden esperar que sus páginas web sean indexadas por un determinado motor de búsqueda.
Rastreando la Deep Web
Una gran cantidad de páginas web se encuentran en la Deep Web o web profunda.[34] Estas páginas normalmente sólo son accesibles mediante el envío de consultas a una base de datos, y los rastreadores normales no pueden encontrar estas páginas si no hay enlaces que apunten a ellas. El protocolo Sitemaps de Google y el mod_oai[35] están pensados para permitir el descubrimiento de estos recursos de la web profunda.
El rastreo de la web profunda también multiplica el número de enlaces web que hay que rastrear. Algunos rastreadores sólo toman algunas de las URL en forma de <a href="URL">
. En algunos casos, como el de Googlebot, el rastreo de la web se realiza sobre todo el texto contenido en el hipertexto, las etiquetas o el texto.
Se pueden adoptar enfoques estratégicos para dirigirse al contenido profundo de la web. Con una técnica llamada screen scraping, se puede personalizar un software especializado para consultar automática y repetidamente un determinado formulario web con la intención de agregar los datos resultantes. Este software puede utilizarse para abarcar varios formularios web en varios sitios web. Los datos extraídos de los resultados de un formulario web pueden tomarse y aplicarse como entrada a otro formulario web, estableciendo así una continuidad a través de la Deep Web de una manera que no es posible con los rastreadores web tradicionales.[36]
Las páginas construidas en AJAX son algunas de las que causan problemas a los rastreadores web. Google ha propuesto un formato de llamadas AJAX que su bot puede reconocer e indexar.[37]
Sesgo de los rastreadores web
Un estudio reciente basado en un análisis a gran escala de los archivos robots.txt demostró que ciertos rastreadores web eran preferidos sobre otros, siendo Googlebot el rastreador web favorito.[38]
Lista de rastreaadores webs
Más información: List of search engine software
A continuación se muestra una lista de arquitecturas de rastreadores publicadas para rastreadores de propósito general (excluyendo los rastreadores web enfocados), con una breve descripción que incluye los nombres dados a los diferentes componentes y características destacadas:
Rastreadores web históricos
- World Wide Web Worm fue un rastreador utilizado para construir un índice simple de títulos de documentos y URLs. El índice podía buscarse utilizando el comando
grep
de Unix. - Yahoo! Slurp fue el nombre del rastreador Yahoo! Search hasta que Yahoo! contrató a Microsoft para utilizar Bingbot en su lugar.
Rastreadores web internos
- Applebot es el rastreador web de Apple. Es compatible con Siri y otros productos.[39]
- Bingbot es el nombre del rastreador web de Microsoft Bing. Sustituyó a Msnbot.
- Baiduspider es el rastreador web de Baidu.
- Googlebot se describe con cierto detalle, pero la referencia es sólo sobre una versión temprana de su arquitectura, que fue escrita en C++ y Python. El rastreador estaba integrado en el proceso de indexación, ya que el análisis sintáctico del texto se realizaba para la indexación de texto completo y también para la extracción de la URL. Hay un servidor de URLs que envía listas de URLs para que las obtengan varios procesos de rastreo. Durante el análisis sintáctico, las URLs encontradas se pasaban a un servidor de URLs que comprobaba si la URL había sido vista previamente. Si no era así, la URL se añadía a la cola del servidor de URL.
- WebCrawler se utilizó para construir el primer índice de texto completo disponible públicamente de un subconjunto de la web. Se basaba en lib-WWW para descargar las páginas y en otro programa analizaba y ordenaba las URL para explorar primero el gráfico de la web. También incluía un rastreador a tiempo real que seguía los enlaces basándose en la similitud del texto ancla con la consulta proporcionada.
- WebFountain es un rastreador distribuido y modular similar a Mercator pero escrito en C++.
- Xenon es un rastreador web utilizado por las autoridades fiscales para detectar fraudes.[40][41]
Rastreadores web comerciales
Los siguientes rastreadores web están disponibles, por un precio:
- SortSite - rastreador para analizar sitios web, disponible para Windows y Mac OS
- Swiftbot - rastreador web de Swiftype, disponible como software como servicio.
Rastreadores de código abierto
- GNU Wget es un rastreador de línea de comandos escrito en C y publicado bajo la GPL. Se suele utilizar para replicar sitios web y FTP.
- GRUB es un rastreador de búsqueda distribuido que Wikia Search utiliza para rastrear la web.
- Heritrix es el rastreador de calidad de archivo de Internet Archive, diseñado para archivar instantáneas 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 utiliza un rastreador web para crear una réplica de un sitio web para su visualización fuera de línea. Está escrito en C y publicado bajo la GPL.
- mnoGoSearch es un rastreador, indexador y un motor de búsqueda escrito en C y licenciado bajo la GPL (sólo para máquinas *NIX)
- Apache Nutch es un rastreador web altamente extensible y escalable escrito en Java publicado bajo licencia Apache. Está basado en Apache Hadoop y puede utilizarse con Apache Solr o Elasticsearch.
- Open Search Server es un motor de búsqueda y software de rastreo web liberado bajo la GPL.
- PHP-Crawler es un sencillo crawler basado en PHP y MySQL liberado bajo la licencia BSD.
- Scrapy, un marco de rastreo web de código abierto, escrito en python (con licencia BSD).
- Seeks, un motor de búsqueda distribuido de forma gratuita (con licencia AGPL).
- StormCrawler, una colección de recursos para construir rastreadores web escalables y de baja latencia en Apache Storm (licencia Apache).
- tkWWW Robot, un rastreador basado en el navegador web tkWWW (con licencia GPL).
- Xapian, un motor de rastreo de búsqueda, escrito en C++.
- YaCy, un motor de búsqueda distribuido y gratuito, construido sobre los principios de las redes de igual a igual (bajo licencia GPL).
Referencias
- Kobayashi, Mei; Takeda, Koichi (1 de junio de 2000). «Information Retrieval on the Web». ACM Comput. Surv. 32 (2): 144-173. ISSN 0360-0300. doi:10.1145/358923.358934. Consultado el 8 de agosto de 2016.
- «See definition of scutter on FOAF Project's wiki». Archivado desde el original el 13 de diciembre de 2009. Consultado el 7 de agosto de 2016.
- Castillo, Carlos (2004). «Effective Web Crawling». Universidad de Chile.
- Cho, Junghoo (Noviembre 2001). «Crawling the Web: Discovery and Maintenance of a Large-Scale Web Data». PhD dissertation, Department of Computer Science, Stanford University. Archivado desde el original el 21 de diciembre de 2012. Consultado el 11 de diciembre de 2021.
- Marc Najork and Janet L. Wiener (Mayo 2001). «Breadth-first crawling yields high-quality pages». In Proceedings of the Tenth Conference on World Wide Web, pages 114–118, Hong Kong. Elsevier Science. Archivado desde el original el 24 de diciembre de 2017. Consultado el 11 de diciembre de 2021.
- Serge Abiteboul; Mihai Preda; Gregory Cobena (2003). Adaptive on-line page importance computation (en inglés). Nueva York: Association for Computing Machinery, Inc. ISBN 1-58113-680-3.
- Baeza-Yates, R., Castillo, C., Marin, M. and Rodriguez, A. (2005). «Crawling a Country: Better Strategies than Breadth-First for Web Page Ordering». In Proceedings of the Industrial and Practical Experience track of the 14th conference on World Wide Web, pages 864–872, Chiba, Japan. ACM Press.
- Shervin Daneshpajouh, Mojtaba Mohammadi Nasiri, Mohammad Ghodsi (mayo 2008). «A Fast Community Based Algorithm for Generating Crawler Seeds Set». In proceeding of 4th International Conference on Web Information Systems and Technologies (Webist-2008), Funchal, Portugal.
- Pant, Gautam; Srinivasan, Padmini; Menczer, Filippo (2004). «Crawling the Web». In Levene, Mark; Poulovassilis, Alexandra (eds.). Web Dynamics: Adapting to Change in Content, Size, Topology and Use. Springer. pp. 153–178.
- Cothey, Viv (2004). «Web-crawling reliability». Journal of the American Society for Information Science and Technology. 55 (14): 1228–1238. CiteSeerX 10.1.1.117.185. doi:10.1002/asi.20078.
- Menczer, F (1997). «ARACHNID: Adaptive Retrieval Agents Choosing Heuristic Neighborhoods for Information Discovery». In D. Fisher, ed., Machine Learning: Proceedings of the 14th International Conference (ICML97). Morgan Kaufmann.
- Menczer, F. and Belew, R.K (1998). «Adaptive Information Agents in Distributed Textual Environments». In K. Sycara and M. Wooldridge (eds.) Proc. 2nd Intl. Conf. on Autonomous Agents (Agents '98). ACM Press.
- Chakrabarti, Soumen; Van Den Berg, Martin; Dom, Byron (1999). «Focused crawling: A new approach to topic-specific Web resource discovery». Computer Networks. 31 (11–16): 1623–1640. doi:10.1016/s1389-1286(99)00052-3. Archivado desde el original el 17 de marzo de 2004. Consultado el 11 de diciembre de 2021.
- Pinkerton, B (1994). «Finding what people want: Experiences with the WebCrawler». In Proceedings of the First World Wide Web Conference, Geneva, Switzerland. Archivado desde el original el 4 de septiembre de 2001. Consultado el 11 de diciembre de 2021.
- Diligenti, M., Coetzee, F., Lawrence, S., Giles, C. L., and Gori, M (2000). «Focused crawling using context graphs». In Proceedings of 26th International Conference on Very Large Databases (VLDB), pages 527-534, Cairo, Egypt.
- Wu, Jian; Teregowda, Pradeep; Khabsa, Madian; Carman, Stephen; Jordan, Douglas; San Pedro Wandelmer, Jose; Lu, Xin; Mitra, Prasenjit; Giles, C. Lee (2012). «Web crawler middleware for search engine digital libraries».
- Wu, Jian; Teregowda, Pradeep; Ramírez, Juan Pablo Fernández; Mitra, Prasenjit; Zheng, Shuyi; Giles, C. Lee (2012). «The evolution of a crawling strategy for an academic document search engine». Proceedings of the 3rd Annual ACM Web Science Conference on - Web Sci '12. pp. 340–343. doi:10.1145/2380718.2380762. ISBN 9781450312288. S2CID 16718130.
- Dong, Hai; Hussain, Farookh Khadeer; Chang, Elizabeth (2009). «State of the Art in Semantic Focused Crawlers». Computational Science and Its Applications – ICCSA 2009. Lecture Notes in Computer Science. 5593. pp. 910–924. doi:10.1007/978-3-642-02457-3_74. hdl:20.500.11937/48288. ISBN 978-3-642-02456-6.
- Dong, Hai; Hussain, Farookh Khadeer (2013). «SOF: A semi-supervised ontology-learning-based focused crawler». Concurrency and Computation: Practice and Experience. 25 (12): 1755–1770. doi:10.1002/cpe.2980. S2CID 205690364.
- Junghoo Cho; Hector Garcia-Molina (2000). «Synchronizing a database to improve freshness». Proceedings of the 2000 ACM SIGMOD international conference on Management of data. Dallas, Texas, United States: ACM. pp. 117–128. doi:10.1145/342009.335391. ISBN 1-58113-217-4.
- E. G. Coffman Jr; Zhen Liu; Richard R. Weber (1998). «Optimal robot scheduling for Web search engines». Journal of Scheduling. 1 (1): 15–29. doi:10.1002/(SICI)1099-1425(199806)1:1<15::AID-JOS3>3.0.CO;2-K.
- Cho, Junghoo; Garcia-Molina, Hector (2003). «Effective page refresh policies for Web crawlers». ACM Transactions on Database Systems. 28 (4): 390–426. doi:10.1145/958942.958945.
- Junghoo Cho; Hector Garcia-Molina (2003). «Estimating frequency of change». ACM Transactions on Internet Technology. 3 (3): 256–290. doi:10.1145/857166.857170.
- Ipeirotis, P., Ntoulas, A., Cho, J., Gravano, L. (2005). «Modeling and managing content changes in text databases». In Proceedings of the 21st IEEE International Conference on Data Engineering, pages 606-617, April 2005, Tokyo.
- Koster, M (1995). «Robots in the web: threat or treat?». ConneXions, 9(4).
- Koster, M (1996). «A standard for robot exclusion». 7 November 2007 at the Wayback Machine. Archivado desde el original el 7 de noviembre de 2007. Consultado el 11 de diciembre de 2021.
- Koster, M (1993). Guidelines for robots writers. Archivado desde el original el 22 de abril de 2005. Consultado el 11 de diciembre de 2021.
- Baeza-Yates, R. and Castillo, C (2002). «Balancing volume, quality and freshness in Web crawling». In Soft Computing Systems – Design, Management and Applications, pages 565–572, Santiago, Chile. IOS Press Amsterdam.
- Heydon, Allan; Najork, Marc (26 de junio de 1999). Mercator: A Scalable, Extensible Web Crawler. Archivado desde el original el 19 de febrero de 2006. Consultado el 11 de diciembre de 2021.
- Dill, S.; Kumar, R.; Mccurley, K. S.; Rajagopalan, S.; Sivakumar, D.; Tomkins, A (2002). «Self-similarity in the web». ACM Transactions on Internet Technology. 2 (3): 205–223. doi:10.1145/572326.572328.
- M. Thelwall; D. Stuart (2006). «Web crawling ethics revisited: Cost, privacy and denial of service». Journal of the American Society for Information Science and Technology. 57 (13): 1771–1779. doi:10.1002/asi.20388.
- Brin, Sergey; Page, Lawrence (1998). «The anatomy of a large-scale hypertextual Web search engine». Computer Networks and ISDN Systems. 30 (1–7): 107–117. doi:10.1016/s0169-7552(98)00110-x.
- Shkapenyuk, V. and Suel, T (2002). «Design and implementation of a high performance distributed web crawler». In Proceedings of the 18th International Conference on Data Engineering (ICDE), pages 357-368, San Jose, California. IEEE CS Press.
- Shestakov, Denis (2008). «Search Interfaces on the Web: Querying and Characterizing». TUCS Doctoral Dissertations 104, University of Turku.
- Michael L Nelson; Herbert Van de Sompel; Xiaoming Liu; Terry L Harrison; Nathan McFarland (24 de marzo de 2005). mod_oai: An Apache Module for Metadata Harvesting.
- Shestakov, Denis; Bhowmick, Sourav S.; Lim, Ee-Peng (2005). «DEQUE: Querying the Deep Web». Data & Knowledge Engineering. 52 (3): 273–311. doi:10.1016/s0169-023x(04)00107-7.
- «"AJAX crawling: Guide for webmasters and developers».
- Sun, Yang (25 de agosto de 2008). A comprehensive study of the regulation and behavior of web crawlers.
- Apple Inc. «About Applebot».
- Norton, Quinn (25 de junio de 2007). «Tax takers send in the spiders». Business. Wired.
- «Xenon web crawling initiative: privacy impact assessment (PIA) summary».