Baidu-Cloud-Sharing-Crawler-Projekt
Es gibt mehrere solcher Open-Source-Projekte auf Github, die jedoch nur den Crawler-Teil bereitstellen. Dieses Projekt fügt auch Module zum Speichern von Daten und zum Erstellen von Elasticsearch-Indizes hinzu. Es kann in tatsächlichen Produktionsumgebungen verwendet werden, das Webmodul ist jedoch vorhanden erforderlich. Entwickeln Sie es selbst
Installieren
Installieren Sie node.js und pm2. Mit node werden Crawler und Indizierungsprogramme ausgeführt, und mit pm2 werden Knotenaufgaben verwaltet.
Installieren Sie MySQL und Mongodb, um Crawler-Daten zu speichern, und Mongodb, um die endgültigen gemeinsam genutzten Daten von Baidu Cloud zu speichern. Diese Daten liegen im JSON-Format vor und es ist bequemer, sie mit Mongodb zu speichern.
gitclonehttps://github.com/callmelanmao/yunshare
cnpmi
Es wird empfohlen, den Befehl cnpm zum Installieren von npm-Abhängigkeiten zu verwenden, die einfachste Installationsmethode
$npminstall-gcnpm--registry=https://registry.npm.taobao.org
Weitere Befehle zur Installation von cnpm finden Sie unter npm.taobao.org.
Initialisierung
Die Crawler-Daten (hauptsächlich URL-Liste) werden in der MySQL-Datenbank gespeichert. Die Quelldatei befindet sich in src/models/index.js. Die Daten sehen standardmäßig wie yun aus . Sie müssen die Yun-Datenbank manuell erstellen
erstellteDatenbankyundefaultcharsetutf8
Ändern Sie das Passwort entsprechend Ihren Anforderungen. Nach Abschluss der MySQL-Konfiguration können Sie den folgenden Befehl ausführen
gulpbabel
nodedist/script/init.js
Beachten Sie, dass Sie zuerst gulpbabel ausführen müssen, um den es6-Code in es5 zu kompilieren, und dann das Initialisierungsskript ausführen müssen, um die Anfangsdaten zu importieren. Die Datendatei befindet sich in data/hot.json, die von der Seite http://yun.baidu stammt .com/pcloud/friend/gethotuserlist? type=1&from=feed&start=0&limit=24&bdstoken=ac95ef31d3979f6ee707ef75cee9f5c5&clienttype=0&web=1 gespeichert.
Starten Sie ein Projekt
Yunshare verwendet pm2 für die Prozessverwaltung von nodejs. Um zu überprüfen, ob die Aufgaben normal ausgeführt werden, können Sie den Befehl pm2list verwenden.
Starten Sie den Elasticsearch-Index
Das Elasticsearch-Indexprogramm wurde ebenfalls geschrieben. Bitte stellen Sie sicher, dass Sie die Elasticsearch5.0-Version installiert haben, Befehl pm2startdist/elastic.js.
Die Standard-Elasticsearch-Adresse ist http://localhost:9200. Wenn Sie diese Adresse ändern müssen, können Sie sie in src/ElasticWorker.js ändern. Denken Sie nach dem Ändern eines beliebigen js-Quellcodes daran, gulpbabel auszuführen und die pm2-Aufgabe neu zu starten Die Änderung wird nicht wirksam.
Nach Abschluss der Elasticsearch-Konfiguration können Sie auch eine elastische Aufgabe in Process.json hinzufügen, sodass Sie das Indizierungsprogramm nicht separat starten müssen.
Verwandte Dokumente
Einfaches und effizientes NodeJS-Crawler-Modell
DEMO