¿Cuáles son las principales consideraciones a la hora de crear un rastreador web?

StackOverflow https://stackoverflow.com/questions/32366

  •  09-06-2019
  •  | 
  •  

Pregunta

Acabo de empezar a pensar acerca de la creación y personalización de un rastreador web hoy en día, y saben muy poco acerca de web crawler/robot de la etiqueta.Una mayoría de los escritos en la etiqueta que he encontrado parece viejo y torpe, así que me gustaría conseguir algunos de los actuales (y práctica) de las perspectivas de la comunidad de desarrolladores web.

Quiero utilizar un rastreador para caminar a través de "la web" para una super simple propósito - "¿el marcado de sitio XYZ cumplir con la condición de ABC?".

Esto plantea un montón de preguntas por mí, pero creo que las dos preguntas principales que necesito para salir de la manera en primer lugar son:

  • Se siente un poco "dudoso" desde el principio-es que este tipo de cosas aceptable?
  • ¿Qué consideraciones debe el rastreador tomar para no molestar a las personas?
¿Fue útil?

Solución

Obedecer robots.txt (y no demasiado agresivo, como se ha dicho ya).

Usted puede ser que desee pensar acerca de su cadena de agente de usuario, es un buen lugar para estar de frente acerca de lo que estás haciendo y cómo usted puede ser contactado.

Otros consejos

Además de WillDean y Einar buenas respuestas, de verdad que me recomienda que tome un tiempo para leer acerca de el significado de los códigos de respuesta HTTP, y lo que el rastreador debe hacer cuando se enfrentan a cada uno, ya que no hará una gran diferencia en su rendimiento, y en si o no usted están prohibidos en algunos sitios.

Algunos links útiles:

HTTP/1.1:Código De Estado De Definiciones

Agregador de cliente HTTP pruebas

Wikipedia

Por favor, asegúrese de incluir un enlace en su cadena de agente de usuario que explica quién/qué/por qué su robot de rastreo.

Todos los puntos buenos, los que se hacen aquí.Usted también tendrá que lidiar con que se genera dinámicamente Java y JavaScript enlaces, los parámetros y los Identificadores de sesión, escapando de las comillas dobles y simples, los intentos fallidos en los enlaces relativos (usando ../../ ir más allá del directorio raíz), el caso de la sensibilidad, marcos, redirecciones, cookies....

Podría seguir durante días, y poco tienen.Tengo un Lista De Verificación De Los Robots que cubre la mayor parte de este, y estoy feliz de contestar lo que puede.

Usted también debe pensar en el uso de código abierto robot rastreador de código, porque se le da una enorme ventaja sobre todos estos temas.Tengo una página en la que así: de código abierto robot de código.Espero que ayude!

También no se olvide de obedecer el bot meta tags: http://www.w3.org/TR/html4/appendix/notes.html#h-B.4.1.2

Otra cosa para pensar - cuando la araña páginas, no ser demasiado apresurado decidir cosas no existen o tienen errores.Algunas de las páginas fuera de línea debido a trabajos de mantenimiento o errores que se corrigen dentro de un corto período de tiempo.

Yo diría que es muy importante tener en cuenta la cantidad de carga que están causando.Por ejemplo, si el rastreador solicitudes de todos los objetos de un solo sitio, más o menos a la vez, podría causar problemas de carga para ese sitio en particular.

En otras palabras, asegúrese de que el rastreador no es demasiado agresivo.

Es perfectamente accetable a hacer, sólo asegúrese de que sólo las visitas de cada página de una vez por cada sesión.Como usted está técnicamente la creación de un searchbot debe obedecer robots.txt y no-cache reglas.La gente todavía puede bloquear el bot específicamente si es necesario mediante el bloqueo de IPs.

Sólo estás buscando el código fuente de lo que puedo decir por lo que usted quiere construir algo para seguir <link>s para las hojas de estilo y <script src="..."></script> para los JavaScripts.

La carga es de una gran consideración.Poner límites en cuanto a la frecuencia de rastreo de un sitio en particular y lo que es la mayoría de la información básica que necesita para lograr su objetivo.Si usted está buscando el texto no descarga todas las imágenes, cosas así.

Por supuesto obedecer robots.txt pero también asegúrese de que su cadena de agente de usuario incluye precisa información de contacto y tal vez un enlace a una página web que describe lo que está haciendo y cómo hacerlo.Si una web admin es ver a un montón de peticiones de usted y es curioso que usted podría ser capaz de responder un montón de preguntas con un informativo de la página web.

Usted tendrá que añadir un poco de capacidad a la lista negra de sitios / o dominios de otras cosas (rangos de IP, ASN, etc) para evitar la araña de empantanarse con sitios de spam.

Usted necesitará tener una implementación HTTP con una gran cantidad de control sobre el tiempo de espera y el comportamiento.Esperar un montón de sitios para enviar de vuelta válido respuestas, enorme respuestas, basura encabezados, o simplemente dejar la conexión abierta indefinidamente, sin respuesta, etc.

También no confiar en un 200 estado a significar "de la página existe".Una gran proporción de los sitios de enviar de vuelta a 200 para "No encontrado" o de otros errores, en mi experiencia (Junto con un gran documento HTML).

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top