Sistema de rastreo distribuido YayCrawler, fácil de usar, configuración avanzada. Es extensible, reduce la carga de trabajo de desarrollo, se puede acoplar y se adapta a diversas necesidades urgentes: WebMagic, Spring Boot, MongoDB, ActiveMQ, Spring + Quartz, Spring Jpa, Druid, Redis, Ehcache, SLF4J, Log4j2, Bootstrap +. Jquery, etcétera.
Lo mejor que podamos, maximizar la productividad de los desarrolladores de rastreadores web, lo cual es un soplo de aire fresco en el marco de los rastreadores.
Un marco de rastreo distribuido completo desarrollado en base a WebMagic. Las características de este marco son las siguientes:
1. Completamente distribuido: consta de un terminal de gestión (Admin), un terminal de despacho (Master) y varios trabajadores. Cada componente se comunica a través del protocolo HTTP.
2. Totalmente configurable: los datos de cualquier sitio web se pueden rastrear a través de las reglas de configuración de la página en el lado del administrador. Por supuesto, la dificultad de los diferentes sitios web es diferente y habrá diferentes componentes para manejar problemas como el inicio de sesión, el código de verificación y la IP. bloqueo, etc
3. Cola de tareas escalable: Redis implementa la cola de tareas. Hay cuatro colas de tareas diferentes según el estado de la tarea: inicial, en ejecución, exitosa y fallida. También puede ampliar diferentes algoritmos de programación de tareas; el valor predeterminado es la programación justa.
4. Método de persistencia definible: en los resultados del rastreo, los datos de atributos se conservan en MonogoDB de forma predeterminada y las imágenes se descargarán al servidor de archivos. Por supuesto, puede ampliar más tipos de almacenamiento.
5. Estabilidad y tolerancia a fallas: cualquier tarea del rastreador se reintentará y registrará. Solo cuando la tarea sea realmente exitosa se trasladará a la cola de éxito y tendrá una descripción del motivo del error.
Marco central: arranque Webmagic Spring
Programación de tareas: Spring + Quartz
Marco de capa de persistencia: Spring Jpa
Base de datos y grupo de conexiones: Alibaba Druid MongoDB MySql
Marco de almacenamiento en caché: Redis Ehcache
Gestión de registros: SLF4J, Log4j2
Marco de interfaz de usuario: Bootstrap + Jquary
1.Instalar JDK8
2. Instale la base de datos mysql para almacenar datos como reglas de análisis. Debe crear una instancia de base de datos de "yayCrawler" y ejecutar el script de base de datos relacionado con Quartz: quartz.sql (consulte el paquete de lanzamiento o el código fuente).
3.Instalar redis
4. Instale mongoDB para almacenar datos de resultados.
5. Instale el software del servidor ftp ftpserver (opcional, utilizado para almacenar imágenes descargadas)
Importe el proyecto, instale maven para instalar los módulos Admin, Worker y Master. Luego copie el Jar generado en el directorio crawler.worker/deploy. Recuerde cambiar la IP de Redis y mysql mogodb en el archivo de configuración y haga clic en start.bat para comenzar.
(Linux y Windows) java -jar trabajador.war --spring.config.location=worker_local.properties
comando de cierre
(Windows) para /f "tokens=1-5 delims= " %%a in ('"netstat -ano|findstr "^:8086""') hacer taskkill /f /pid %%e
1. Administrador La capa de administrador es principalmente responsable de la configuración de las reglas de extracción de páginas, la configuración del sitio de páginas, la gestión de recursos y la liberación de tareas.
2. Master es el centro de control del rastreador distribuido. Acepta tareas publicadas por el administrador y asigna tareas a los trabajadores para su ejecución.
2.1. Recibir tareas editoriales
2.2. Aceptar el registro de Trabajador
3. Trabajador es un joven trabajador que realmente hace las cosas. Acepta y ejecuta las tareas asignadas por el Maestro y le informa los latidos de su corazón con regularidad.