
Fokussierter Webcrawler, der Seitenklassifikatoren und Link-Priorisierung verwendet, um domänenspezifische oder musterbasierte Webseiten effizient zu sammeln, mit Unterstützung für Elasticsearch-Indizierung und TOR-Proxy-Crawling.
ACHE ist ein fokussierter Webcrawler. Er sammelt Webseiten, die bestimmte Kriterien erfüllen, z. B. Seiten, die zu einer bestimmten Domain gehören oder ein benutzerdefiniertes Muster enthalten. ACHE unterscheidet sich von generischen Crawlern dadurch, dass es Seitenklassifikatoren verwendet, um zwischen relevanten und irrelevanten Seiten in einer bestimmten Domain zu unterscheiden. Ein Seitenklassifikator kann von einem einfachen regulären Ausdruck (der jede Seite erfasst, die ein bestimmtes Wort enthält) bis zu einem auf maschinellem Lernen basierenden Klassifikationsmodell reichen. ACHE kann außerdem automatisch lernen, wie Links priorisiert werden, um relevante Inhalte effizient zu finden und das Abrufen irrelevanter Inhalte zu vermeiden.
ACHE unterstützt viele Funktionen, wie zum Beispiel:
Ab Version 0.11.0 wird ACHE unter der Apache 2.0-Lizenz bereitgestellt. Frühere Versionen standen unter der GNU GPL-Lizenz.
Weitere Informationen finden Sie in der Dokumentation des Projekts.
Sie können ACHE entweder aus dem Quellcode erstellen, die ausführbare Binärdatei mit conda herunterladen oder Docker verwenden, um ein Image zu erstellen und ACHE in einem Container auszuführen.
Voraussetzung: Sie benötigen eine aktuelle Version von Java (JDK 8 oder neuer).
Um ACHE aus dem Quellcode zu erstellen, führen Sie die folgenden Befehle in Ihrem Terminal aus:
git clone https://github.com/ViDA-NYU/ache.git
cd ache
./gradlew installDist
Dadurch wird ein Installationspaket unter ache/build/install/ erstellt.
Anschließend können Sie den Befehl ache im Terminal verfügbar machen, indem Sie die ACHE-Binärdateien zur Umgebungsvariable PATH hinzufügen:
export ACHE_HOME="{path-to-cloned-ache-repository}/ache/build/install/ache"
export PATH="$ACHE_HOME/bin:$PATH"
Voraussetzung: Sie müssen eine aktuelle Version von Docker installieren. Einzelheiten zur Installation von Docker für Ihre Plattform finden Sie unter https://docs.docker.com/engine/installation/.
Wir veröffentlichen vorgefertigte Docker-Images für jede veröffentlichte Version auf Docker Hub. Sie können das neueste Image mit folgendem Befehl ausführen:
docker run -p 8080:8080 vidanyu/ache:latest
Alternativ können Sie das Image selbst erstellen und ausführen:
git clone https://github.com/ViDA-NYU/ache.git
cd ache
docker build -t ache .
docker run -p 8080:8080 ache
Die Dockerfile legt zwei Datenvolumes frei, sodass Sie ein Verzeichnis mit Ihren Konfigurationsdateien (unter /config) einbinden und die vom Crawler gespeicherten Daten (unter /data) nach dem Stoppen des Containers erhalten können.
Voraussetzung: Sie müssen den Conda-Paketmanager auf Ihrem System installiert haben.
Wenn Sie Conda verwenden, können Sie ache von Anaconda Cloud mit folgendem Befehl installieren:
conda install -c vida-nyu ache
HINWEIS: Nur veröffentlichte, getaggte Versionen werden in Anaconda Cloud veröffentlicht. Die über Conda verfügbare Version ist daher möglicherweise nicht aktuell. Wenn Sie die neueste Version ausprobieren möchten, klonen Sie bitte das Repository und erstellen Sie aus dem Quellcode oder verwenden Sie die Docker-Version.
Bevor Sie einen Crawl starten, müssen Sie eine Konfigurationsdatei mit dem Namen ache.yml erstellen.
Wir stellen einige Konfigurationsbeispiele im Verzeichnis config des Repositorys bereit, die Ihnen den Einstieg erleichtern.
Sie benötigen außerdem eine Konfigurationsdatei für den Seitenklassifikator mit dem Namen pageclassifier.yml.
Einzelheiten zur Konfiguration eines Seitenklassifikators finden Sie in der Dokumentation zu Seitenklassifikatoren.
Nachdem Sie einen Klassifikator konfiguriert haben, benötigen Sie als Letztes eine Seed-Datei, d. h. eine Textdatei mit einer URL pro Zeile. Der Crawler verwendet diese URLs, um den Crawl zu starten.
Schließlich können Sie den Crawler mit dem folgenden Befehl starten:
ache startCrawl -o <data-output-path> -c <config-path> -s <seed-file> -m <model-path>
wobei
<configuration-path> der Pfad zum Konfigurationsverzeichnis ist, das ache.yml enthält.<seed-file> die Seed-Datei ist, die die Seed-URLs enthält.<model-path> der Pfad zum Modellverzeichnis ist, das die Datei pageclassifier.yml enthält.<data-output-path> der Pfad zum Datenausgabeverzeichnis ist.Beispiel für die Ausführung von ACHE mit dem Beispiel eines vortrainierten Seitenklassifikator-Modells und der Beispiel-Seed-Datei, die im Repository verfügbar sind:
ache startCrawl -o output -c config/sample_config -s config/sample.seeds -m config/sample_model
Der Crawler wird ausgeführt und die Protokolle werden auf der Konsole angezeigt. Drücken Sie Ctrl+C, um ihn jederzeit zu stoppen (dies kann einige Zeit dauern). Bei langen Crawls sollten Sie ACHE mit einem Tool wie nohup im Hintergrund ausführen.
ACHE kann Daten in mehreren Formaten ausgeben. Die derzeit verfügbaren Datenformate sind:
Weitere Informationen zur Konfiguration von Datenformaten finden Sie auf der Seite Dokumentation zu Datenformaten.
Wir freuen uns über Ihr Feedback. Bitte reichen Sie Vorschläge, Fragen oder Fehlerberichte über den Github Issue Tracker ein.
Wir haben auch einen Chatroom auf Gitter.
Codebeiträge sind willkommen. Wir verwenden einen Codestil, der vom Google Style Guide abgeleitet ist, jedoch mit 4 Leerzeichen für Tabs. Eine Eclipse-Formatter-Konfigurationsdatei ist im Repository verfügbar.