Red de conocimiento informático - Conocimiento del nombre de dominio - ¿Cuáles son las ventajas y desventajas de cada marco de rastreo de código abierto?

¿Cuáles son las ventajas y desventajas de cada marco de rastreo de código abierto?

En primer lugar, hay tres marcos de rastreo

Rastreador distribuido: Nutch

Rastreador independiente de JAVA: Crawler4j, WebMagic, WebCollector

Rastreador independiente que no es JAVA: Scarey Tipo 1: Rastreador distribuido Ventajas:

Enorme administración de URL

Velocidad de red rápida Desventajas:

Nutch está diseñado para motores de búsqueda de .

Desventajas de una velocidad de red rápida:

Nutch es un rastreador especialmente diseñado para motores de búsqueda. La mayoría de los usuarios necesitan rastreadores para un rastreo preciso de datos (extracción fina). Esto no significa mucho para una extracción fina.

El uso de Nutch para la extracción de datos hace perder mucho tiempo en cálculos innecesarios. Si intenta rediseñar Nutch para que sea adecuado para una extracción fina, básicamente tendrá que romper el marco de Nutch y cambiar Nutch más allá del reconocimiento.

Nutch depende de hadoop para ejecutarse, y hadoop en sí consume mucho tiempo. Si la cantidad de máquinas del clúster es pequeña, la velocidad de rastreo será mucho peor que la de un rastreador independiente.

Aunque Nutch tiene un mecanismo de complemento, se promociona como algo destacado. Puede ver que algunos complementos de Nutch de código abierto brindan capacidades de extracción sofisticadas. Pero cualquiera que haya desarrollado complementos de Nutch sabe lo aburrido que es el sistema de complementos de Nutch. El uso del mecanismo de reflexión para cargar y llamar complementos hace que sea extremadamente difícil escribir y depurar programas, y mucho menos desarrollar un sistema de extracción complejo y sofisticado en ellos.

Nutch no proporciona un punto de montaje de complemento para la extracción granular. El complemento Nutch tiene solo cinco o seis puntos de montaje, y todos son para motores de búsqueda. No hay puntos de montaje para una extracción fina. La mayoría de los complementos de extracción detallados de Nutch están montados en un punto de montaje "analizador", que en realidad está diseñado para analizar enlaces (proporcionar URL para el rastreo posterior) y proporcionar cierta facilidad de uso para los motores de búsqueda. Información extraída de la página web (meta de la página web). -información, texto)

Al utilizar Nutch para el desarrollo secundario de rastreadores, el tiempo necesario para escribir y depurar un rastreador suele ser más de diez veces mayor que el de un rastreador independiente. El costo de aprendizaje para comprender el código fuente de Nutch es alto, sin mencionar la necesidad de que un equipo lea y comprenda el código fuente de Nutch. Además de los problemas con el programa en sí (problemas de hadoop, problemas de hbase), el proceso de depuración también se verá afectado por varios problemas.

La versión Nutch2 actualmente no es apta para desarrollo. La versión estable oficial de Nutch ahora es nutch2.2.1, pero esta versión viene incluida con gora-0.3. gora-0.3 es la versión anterior a Nutch2.3 y posterior a Nutch2.2.1, y se actualiza constantemente en el SVN oficial. Es muy inestable (modificado todo el tiempo). Categoría 2: Ventajas del rastreador independiente de JAVA:

Admite subprocesos múltiples.

Se admiten servidores proxy.

Se pueden filtrar las URL duplicadas.

Responsable de recorrer el sitio web y las páginas de descarga. La información generada al rastrear js está relacionada con el módulo de extracción de información de la página web, que generalmente debe completarse simulando un navegador (htmlunit, selenium). Desventajas: los patrones de diseño no pueden guiar el desarrollo de software. El uso de patrones de diseño para diseñar rastreadores solo hará que los rastreadores diseñados estén más inflados. Categoría 3: Rastreadores independientes que no son JAVA Ventajas:

La primera es que el rastreador de Python puede usar 30 líneas de código para completar tareas que JAVA solo puede completar con 50 líneas de código.

Es cierto que escribir código en Python es muy rápido, pero en la etapa de depuración, el tiempo consumido en la depuración del código Python a menudo excede con creces el tiempo ahorrado en la etapa de codificación.

Usar Python para desarrollar requiere escribir más módulos de prueba para garantizar la corrección y estabilidad del programa. Por supuesto, si la escala de rastreo no es grande y el negocio de rastreo no es complejo, también es bastante bueno utilizar rastreadores como scray, que pueden completar fácilmente la tarea de rastreo.

Desventajas:

Muchos errores e inestable. ¿Pueden los rastreadores rastrear información ajax?

Hay algunos datos cargados de forma asincrónica en la página web. Hay dos formas de capturar estos datos: usar un navegador simulado (como se menciona en la pregunta 1) o analizar la solicitud http de ajax y generar su propio ajax. solicitar URL y obtener los datos devueltos. ¿Cuál es el punto de utilizar un rastreador de código abierto si usted mismo genera las solicitudes ajax? Básicamente, se trata de utilizar el grupo de subprocesos y las funciones de administración de URL de los rastreadores de código abierto (como el rastreo de puntos de interrupción). Si ya puedo generar las solicitudes ajax requeridas (lista), ¿cómo puedo rastrear estas solicitudes usando estos rastreadores? ?

Los rastreadores suelen estar diseñados para recorrer páginas estáticas o dinámicas en modo de recorrido amplio o profundo. El rastreo de información ajax pertenece al ámbito de la web profunda, aunque la mayoría de los rastreadores no lo admiten directamente. Pero también se puede lograr mediante algunos métodos. Por ejemplo, WebCollector utiliza un recorrido de amplitud para recorrer el sitio web. La primera ronda de rastreo del rastreador es rastrear todas las URL en la colección de semillas (seeds). En pocas palabras, la solicitud ajax generada se utiliza como semilla y se coloca en el rastreador. El rastreador realiza un recorrido de amplitud con una profundidad de 1 en estas semillas (el valor predeterminado es un recorrido de amplitud). ¿Cómo rastrea un rastreador el sitio web al que intenta acceder?

Todos estos rastreadores de código abierto admiten la especificación de cookies durante el rastreo, y el inicio de sesión simulado se basa principalmente en cookies. Puede obtenerlo manualmente, simular un inicio de sesión a través de una solicitud http o utilizar un navegador simulado para iniciar sesión automáticamente y obtener la cookie. ¿Cómo extraen los rastreadores información de las páginas web?

Los rastreadores de código abierto suelen integrar herramientas de extracción de páginas web. Admite dos especificaciones principales: ¿Puede una página web llamar a un rastreador?

Los rastreadores se llaman en el lado del servidor web y se pueden usar como normalmente se usan estos rastreadores. ¿Qué tan rápido es el rastreador?

Básicamente, se puede decir que la velocidad de un rastreador de código abierto independiente es el límite de la velocidad de la red de la máquina. La velocidad lenta del rastreador a menudo se debe al hecho de que la cantidad de subprocesos abiertos por el usuario es pequeña, la velocidad de la red es lenta o la interacción con la base de datos es lenta cuando los datos persisten. Estos suelen estar determinados por el desarrollo secundario de la máquina y el código del usuario. La velocidad de estos rastreadores de código abierto está bien.