
Crawler web focalizzato che utilizza classificatori di pagine e prioritizzazione dei link per raccogliere in modo efficiente pagine web specifiche per dominio o corrispondenti a pattern, con supporto per l'indicizzazione su Elasticsearch e crawling tramite proxy TOR.
ACHE è un web crawler focalizzato. Raccolgie pagine web che soddisfano criteri specifici, ad esempio pagine che appartengono a un dato dominio o che contengono un pattern definito dall'utente. ACHE si differenzia dai crawler generici in quanto utilizza classificatori di pagina per distinguere tra pagine pertinenti e irrilevanti in un determinato dominio. Un classificatore di pagina può andare da una semplice espressione regolare (che corrisponde a ogni pagina contenente, ad esempio, una specifica parola) a un modello di classificazione basato su machine learning. ACHE può anche imparare automaticamente come prioritizzare i link per localizzare in modo efficiente contenuti pertinenti evitando il recupero di contenuti irrilevanti.
ACHE supporta molte funzionalità, tra cui:
A partire dalla versione 0.11.0 in poi, ACHE è concesso in licenza sotto Apache 2.0. Le versioni precedenti erano concesse in licenza sotto GNU GPL.
Maggiori informazioni sono disponibili sulla documentazione del progetto.
Puoi compilare ACHE dal codice sorgente, scaricare il binario eseguibile usando conda, oppure usare Docker per creare un'immagine ed eseguire ACHE in un contenitore.
Prerequisito: Dovrai installare una versione recente di Java (JDK 8 o successiva).
Per compilare ACHE dal sorgente, puoi eseguire i seguenti comandi nel tuo terminale:
git clone https://github.com/ViDA-NYU/ache.git
cd ache
./gradlew installDist
che genererà un pacchetto di installazione in ache/build/install/.
Puoi quindi rendere disponibile il comando ache nel terminale aggiungendo i binari di ACHE alla variabile d'ambiente PATH:
export ACHE_HOME="{path-to-cloned-ache-repository}/ache/build/install/ache"
export PATH="$ACHE_HOME/bin:$PATH"
Prerequisito: Dovrai installare una versione recente di Docker. Consulta https://docs.docker.com/engine/installation/ per i dettagli su come installare Docker per la tua piattaforma.
Pubbliciamo immagini Docker precompilate su Docker Hub per ogni versione rilasciata. Puoi eseguire l'immagine più recente usando:
docker run -p 8080:8080 vidanyu/ache:latest
In alternativa, puoi creare l'immagine da solo ed eseguirla:
git clone https://github.com/ViDA-NYU/ache.git
cd ache
docker build -t ache .
docker run -p 8080:8080 ache
Il Dockerfile espone due volumi di dati in modo da poter montare una directory con i tuoi file di configurazione (in /config) e preservare i dati memorizzati del crawler (in /data) dopo l'arresto del contenitore.
Prerequisito: Devi avere il gestore di pacchetti Conda installato nel tuo sistema.
Se usi Conda, puoi installare ache da Anaconda Cloud eseguendo:
conda install -c vida-nyu ache
NOTA: Solo le versioni con tag rilasciate vengono pubblicate su Anaconda Cloud, quindi la versione disponibile tramite Conda potrebbe non essere aggiornata. Se vuoi provare la versione più recente, clona il repository e compila dal sorgente o usa la versione Docker.
Prima di avviare un crawl, devi creare un file di configurazione chiamato ache.yml.
Forniamo alcuni esempi di configurazione nella directory config del repository che possono aiutarti a iniziare.
Avrai anche bisogno di un file di configurazione del classificatore di pagina chiamato pageclassifier.yml.
Per i dettagli su come configurare un classificatore di pagina, consulta la documentazione sui classificatori di pagina.
Dopo aver configurato un classificatore, l'ultima cosa di cui avrai bisogno è un file seed, cioè un file di testo contenente un URL per riga. Il crawler userà questi URL per avviare il crawl.
Infine, puoi avviare il crawler usando il seguente comando:
ache startCrawl -o <percorso-output-dati> -c <percorso-config> -s <file-seed> -m <percorso-modello>
dove:
<percorso-configurazione> è il percorso della directory di configurazione che contiene ache.yml.<file-seed> è il file seed che contiene gli URL seed.<percorso-modello> è il percorso della directory del modello che contiene il file pageclassifier.yml.<percorso-output-dati> è il percorso della directory di output dei dati.Esempio di esecuzione di ACHE utilizzando il modello di classificatore di pagina pre-addestrato di esempio e il file di seed di esempio disponibili nel repository:
ache startCrawl -o output -c config/sample_config -s config/sample.seeds -m config/sample_model
Il crawler verrà eseguito e stamperà i log sulla console. Premi Ctrl+C in qualsiasi momento per fermarlo (potrebbe richiedere del tempo).
Per crawl lunghi, dovresti eseguire ACHE in background usando uno strumento come nohup.
ACHE può produrre dati in diversi formati. I formati attualmente disponibili sono:
Per maggiori dettagli su come configurare i formati dei dati, consulta la pagina documentazione sui formati dei dati.
Accogliamo con favore il feedback degli utenti. Invia eventuali suggerimenti, domande o segnalazioni di bug utilizzando il tracciatore di issue di Github.
Abbiamo anche una chat su Gitter.
I contributi al codice sono benvenuti. Utilizziamo uno stile di codice derivato dalla Google Style Guide, ma con 4 spazi per le tabulazioni. Un file di configurazione del formattatore Eclipse è disponibile nel repository.