2009-04-28 18 views
5

¿Hay alguna duración de tiempo estándar que un rastreador debe esperar entre repetidas visitas al mismo servidor, para no sobrecargar el servidor?¿Cuál es la duración óptima de un rastreador web para esperar entre solicitudes repetidas a un servidor web?

Si no, cualquier sugerencia sobre lo que puede ser un buen período de espera para que el rastreador se considere cortés.

¿Este valor también varía de servidor a servidor ... y si es así, cómo puede uno determinarlo?

+0

Gracias por las respuestas rápidas, chicos ... actualmente, mi principal preocupación es no golpear los servidores web demasiado rápido ... cualquier sugerencia en este sentido será genial. –

+0

Olvidé mencionar ... estoy golpeando URL diferentes del mismo dominio cada vez ... tratando de averiguar el intervalo óptimo entre dichas solicitudes –

Respuesta

0

Eso dependerá de la frecuencia con la que cambie el contenido. Por ejemplo, tiene sentido rastrear un sitio de noticias con más frecuencia que un sitio con artículos estáticos.

En cuanto a cómo determinar exactamente el óptimo, esto dependerá de cómo juzgue el costo de búsqueda, indexación, etc., contra el valor de tener datos actualizados. Depende totalmente de usted, pero probablemente tendrá que utilizar algunas heurísticas para calcular cuánto está cambiando el sitio a lo largo del tiempo, según las observaciones. Si un sitio no ha cambiado para tres recuperaciones consecutivas, es posible que desee esperar un poco más antes de recuperar la próxima vez. Por el contrario, si un sitio siempre cambia cada vez que lo busca, es posible que desee ser un poco más agresivo para evitar actualizaciones perdidas.

+1

Curioso, ¿debería el rastreador respetar la etiqueta HTTP meta 'expires'? – dirkgently

+0

Puede usar un patrón logarítmico para ajustar el intervalo de tiempo, en función del intervalo de tiempo entre los cambios de contenido. –

3

Este artículo sobre IBM entra en algunos detalles sobre how the Web crawler uses the robots exclusion protocol y recrawl interval settings in the Web crawler

Para citar los artículos.

La primera vez que una página se rastrea, el rastreador utiliza la fecha y hora en que la página se rastrea y un promedio de los intervalos máximos nuevo rastreo mínimo y especificado para fijar una fecha nuevo rastreo. La página no se volverá a rastrear antes de esa fecha. La hora en que se volverá a rastrear la página después de esa fecha depende de la carga del rastreador y del saldo de las URL nuevas y antiguas en el espacio de rastreo.

Cada vez que se vuelve a rastrear la página, el rastreador comprueba si el contenido ha cambiado. Si el contenido ha cambiado, el siguiente intervalo de rastreo será más corto que el anterior, pero nunca más corto que el intervalo mínimo de rastreo especificado. Si el contenido no ha cambiado, el siguiente intervalo de rastreo será más largo que el anterior, pero nunca más que el intervalo máximo de rastreo especificado.

Esto es sobre su rastreador web pero es muy útil para leer mientras construyes tu propia herramienta.

0

No creo que haya un intervalo mínimo en la frecuencia con la que puede visitar un sitio, ya que depende en gran medida de la carga actual del servidor y la capacidad del servidor.

Puede intentar probar el tiempo de respuesta y las tasas de tiempo de espera, si un sitio está respondiendo lentamente u obteniendo errores de tiempo de espera, debe aumentar el intervalo de repetición, aunque no sea su rastreador lo que cause la lentitud o tiempos de espera.

1

Sé que esto podría ser un poco tarde, pero las respuestas no me ayudaron con esta pregunta. También me preocupa la frecuencia con que un rastreador golpearía un servidor. Especialmente leyendo el archivo robots.txt de wikipedia.org donde ha deshabilitado bots que "Golpea muchas veces por segundo, no es aceptable".

He encontrado este interesante artículo de MS Research titulado Web Crawler Architecture - http://research.microsoft.com/pubs/102936/EDS-WebCrawlerArchitecture.pdf. Lo siguiente es del documento hablando de politenes.

Hay muchas políticas posibles de cortesía; uno que es particularmente fácil de implementar es rechazar solicitudes concurrentes al mismo servidor web; una política un poco más sofisticada sería esperar un tiempo proporcional a la última hora de descarga antes de contactar nuevamente a un servidor web determinado.

Cuestiones relacionadas