Golang implementa la función de rastreador de versión de tarea única

Primero mire la versión de una sola tarea de la arquitectura del rastreador, como sigue:

Esta es una arquitectura de la versión de una sola tarea del rastreador:

El primer paso es enviar la semilla al motor.

El segundo paso es dar la URL en la semilla a fetcher, y fetcher obtendrá el contenido de texto de la red.

El tercer paso es proporcionar el contenido del texto recuperado al analizador, que obtendrá la solicitud y los elementos que deben imprimirse o almacenarse de acuerdo con ciertas reglas de conversión al motor.

La solicitud devuelta por el analizador continuará enviándose a una cola mantenida en el motor, mientras la solicitud tenga un valor, irá a fethcer y analizador.

Además, fetcher y parser aquí porque el valor de retorno de fetcher es el valor del parámetro entrante de parse, por lo que aquí realmente se puede combinar en un módulo, como un módulo llamado trabajador.

La arquitectura que se actualizará más adelante es solo el módulo de trabajo, y fetcher y parser son solo los módulos de implementación en el módulo de trabajo.

 

Actualmente, las desventajas de esta versión de la arquitectura:

1. No hay un buen uso de los canales de golang, y el motor siempre ha estado en un estado de tarea única. Especialmente para el módulo de captación, lleva más tiempo obtener el contenido en la red.

 

¿Esta versión de tarea única puede tener código fuente?

Sí, la dirección es la siguiente:

https://github.com/anmutu/du_crawler/tree/master/02crawler

 

Supongo que te gusta

Origin www.cnblogs.com/anmutu/p/12725642.html
Recomendado
Clasificación