YayCrawler verteiltes Crawler-System, einfach zu bedienen, erweiterte Konfiguration. Es ist erweiterbar, reduziert den Entwicklungsaufwand, kann dockerisiert werden und passt sich verschiedenen dringenden Anforderungen an: WebMagic, Spring Boot, MongoDB, ActiveMQ, Spring + Quartz, Spring Jpa, Druid, Redis, Ehcache, SLF4J, Log4j2, Bootstrap + Jquery usw.
Maximieren Sie nach besten Kräften die Produktivität der Webcrawler-Entwickler, was für frischen Wind im Crawler-Framework sorgt.
Ein vollständiges verteiltes Crawler-Framework, das auf WebMagic basiert. Die Merkmale dieses Frameworks sind wie folgt:
1. Vollständig verteilt: Es besteht aus dem Verwaltungsterminal (Admin), dem Dispatch-Terminal (Master) und mehreren Arbeitern. Jede Komponente kommuniziert über das HTTP-Protokoll.
2. Vollständig konfigurierbar: Daten von jeder Website können über die Seitenkonfigurationsregeln auf der Admin-Seite gecrawlt werden. Natürlich ist der Schwierigkeitsgrad verschiedener Websites unterschiedlich und es gibt unterschiedliche Komponenten zur Handhabung von Problemen wie Anmeldung, Bestätigungscode und IP Blockierung usw.
3. Skalierbare Aufgabenwarteschlange: Die Aufgabenwarteschlange wird von Redis implementiert. Je nach Status der Aufgabe gibt es vier verschiedene Aufgabenwarteschlangen: „Initial“, „In Ausführung“, „Erfolgreich“ und „Fehlgeschlagen“. Sie können auch verschiedene Aufgabenplanungsalgorithmen erweitern. Die Standardeinstellung ist faire Planung.
4. Definierbare Persistenzmethode: In den Crawling-Ergebnissen werden die Attributdaten standardmäßig in MonogoDB gespeichert und die Bilder werden auf den Dateiserver heruntergeladen. Natürlich können Sie weitere Speichertypen erweitern.
5. Stabilität und Fehlertoleranz: Jede Crawler-Aufgabe wird wiederholt und aufgezeichnet. Erst wenn die Aufgabe wirklich erfolgreich ist, wird sie in die Erfolgswarteschlange verschoben.
Kern-Framework: Webmagic Spring Boot
Aufgabenplanung: Frühling + Quarz
Persistenzschicht-Framework: Spring Jpa
Datenbank und Verbindungspool: Alibaba Druid MongoDB MySql
Caching-Framework: Redis Ehcache
Protokollverwaltung: SLF4J, Log4j2
Front-End-Framework: Bootstrap + Jquary
1.Installieren Sie JDK8
2. Installieren Sie die MySQL-Datenbank, um Daten wie Parsing-Regeln zu speichern. Sie müssen eine Datenbankinstanz von „yayCrawler“ erstellen und das quarzbezogene Datenbankskript ausführen: quartz.sql (siehe Release-Paket oder Quellcode).
3.Installieren Sie Redis
4. Installieren Sie mongoDB, um Ergebnisdaten zu speichern
5. Installieren Sie die FTP-Serversoftware ftpserver (optional, wird zum Speichern heruntergeladener Bilder verwendet).
Importieren Sie das Projekt und installieren Sie es mit Maven, um die Module Admin, Worker und Master zu installieren. Kopieren Sie dann das generierte Jar in das Verzeichnis crawler.worker/deploy. Denken Sie daran, die IP von Redis und MySQL Mogodb in der Konfigurationsdatei zu ändern und zum Starten auf start.bat zu klicken.
(Linux und Windows) java -jar worker.war --spring.config.location=worker_local.properties
Befehl schließen
(Windows) für /f "tokens=1-5 delims= " %%a in ('"netstat -ano|findstr "^:8086"'') do taskkill /f /pid %%e
1. Admin Die Admin-Ebene ist hauptsächlich für die Konfiguration der Seitenextraktionsregeln, die Seiten-Site-Konfiguration, die Ressourcenverwaltung und die Aufgabenfreigabe verantwortlich.
2. Der Master ist das Kontrollzentrum des verteilten Crawlers. Er nimmt vom Administrator freigegebene Aufgaben entgegen und weist den Mitarbeitern Aufgaben zur Ausführung zu.
2.1. Veröffentlichungsaufgaben erhalten
2.2. Arbeiterregistrierung akzeptieren
3. Der Arbeiter ist ein fleißiger junger Mann, der die vom Meister zugewiesenen Aufgaben wirklich annimmt und ausführt und dem Meister regelmäßig seinen Herzschlag meldet.