Système de crawler distribué YayCrawler, simple à utiliser, configuration avancée. Il est extensible, réduit la charge de travail de développement, peut être dockerisé et s'adapte à divers besoins urgents : WebMagic, Spring Boot, MongoDB, ActiveMQ, Spring + Quartz, Spring Jpa, Druid, Redis, Ehcache, SLF4J, Log4j2, Bootstrap +. Jquery, etc.
Au mieux de nos capacités, maximiser la productivité des développeurs de robots d'exploration Web, ce qui est une bouffée d'air frais dans le cadre des robots d'exploration.
Un framework de crawler distribué complet développé sur la base de WebMagic. Les caractéristiques de ce framework sont les suivantes :
1. Entièrement distribué : il se compose du terminal de gestion (Admin), du terminal de répartition (Maître) et de plusieurs travailleurs. Chaque composant communique via le protocole HTTP.
2. Entièrement configurable : les données de n'importe quel site Web peuvent être explorées via les règles de configuration de page du côté administrateur. Bien sûr, la difficulté des différents sites Web est différente et il y aura différents composants pour gérer les problèmes tels que la connexion, le code de vérification, l'adresse IP. blocage, etc
3. File d'attente de tâches évolutive : la file d'attente de tâches est implémentée par Redis. Il existe quatre files d'attente de tâches différentes selon l'état de la tâche : initiale, en cours d'exécution, réussie et échouée. Vous pouvez également étendre différents algorithmes de planification de tâches, la planification par défaut étant équitable.
4. Méthode de persistance définissable : dans les résultats de l'analyse, les données d'attribut sont conservées par défaut dans MonogoDB et les images seront téléchargées sur le serveur de fichiers. Bien sûr, vous pouvez étendre davantage de types de stockage.
5. Stabilité et tolérance aux pannes : toute tâche d'analyseur sera réessayée et enregistrée Ce n'est que lorsque la tâche sera réellement réussie qu'elle sera déplacée vers la file d'attente des échecs et qu'elle comportera une description de la raison de l'échec.
Framework de base : Webmagic Spring Boot
Planification des tâches : Printemps + Quartz
Cadre de couche de persistance : Spring Jpa
Base de données et pool de connexions : Alibaba Druid MongoDB MySql
Cadre de mise en cache : Redis Ehcache
Gestion des journaux : SLF4J, Log4j2
Framework front-end : Bootstrap + Jquary
1.Installez JDK8
2. Installez la base de données mysql pour stocker des données telles que les règles d'analyse. Vous devez créer une instance de base de données de "yayCrawler" et exécuter le script de base de données lié à quartz : quartz.sql (voir le package de version ou le code source).
3.Installer Redis
4. Installez mongoDB pour stocker les données de résultats
5. Installez le logiciel serveur ftp ftpserver (facultatif, utilisé pour stocker les images téléchargées)
Importez le projet, maven install pour installer les modules Admin, Worker, Master. Copiez ensuite le Jar généré dans le répertoire crawler.worker/deploy N'oubliez pas de modifier l'IP de Redis et mysql mogodb dans le fichier de configuration et cliquez sur start.bat pour démarrer.
(Linux et Windows) java -jar travailleur.war --spring.config.location=worker_local.properties
commande de fermeture
(Windows) pour /f "tokens=1-5 delims= " %%a in ('"netstat -ano|findstr "^:8086""') do taskkill /f /pid %%e
1. Admin La couche Admin est principalement responsable de la configuration des règles d'extraction de page, de la configuration du site de page, de la gestion des ressources et de la libération des tâches.
2. Master est le centre de contrôle du robot d'exploration distribué. Il accepte les tâches publiées par l'administrateur et attribue les tâches aux travailleurs pour exécution.
2.1. Recevoir des tâches de publication
2.2. Accepter l'inscription des travailleurs
3. Le travailleur est un jeune homme travailleur qui fait vraiment les choses. Il accepte et exécute les tâches assignées par le Maître et rapporte régulièrement ses battements de cœur au Maître.