
Un web crawler ciblé qui utilise des classifieurs de pages et une priorisation des liens pour collecter efficacement des pages web spécifiques à un domaine ou correspondant à des motifs, avec support pour l'indexation Elasticsearch et le crawling via proxy TOR.
ACHE est un robot d'exploration web ciblé. Il collecte des pages web qui satisfont des critères spécifiques, par exemple des pages appartenant à un domaine donné ou contenant un motif défini par l'utilisateur. ACHE se distingue des robots génériques car il utilise des classifieurs de pages pour distinguer les pages pertinentes des pages non pertinentes dans un domaine donné. Un classifieur de pages peut aller d'une simple expression régulière (qui reconnaît toute page contenant un mot spécifique, par exemple) à un modèle de classification basé sur l'apprentissage automatique. ACHE peut également apprendre automatiquement à prioriser les liens afin de localiser efficacement le contenu pertinent tout en évitant la récupération de contenu non pertinent.
ACHE prend en charge de nombreuses fonctionnalités, telles que :
À partir de la version 0.11.0, ACHE est distribué sous licence Apache 2.0. Les versions précédentes étaient sous licence GNU GPL.
Plus d'informations sont disponibles dans la documentation du projet.
Vous pouvez soit compiler ACHE à partir du code source, télécharger le binaire exécutable avec conda, ou utiliser Docker pour construire une image et exécuter ACHE dans un conteneur.
Prérequis : Vous devez installer une version récente de Java (JDK 8 ou ultérieure).
Pour compiler ACHE à partir du code source, exécutez les commandes suivantes dans votre terminal :
git clone https://github.com/ViDA-NYU/ache.git
cd ache
./gradlew installDist
Cela générera un package d’installation dans ache/build/install/.
Vous pouvez ensuite rendre la commande ache disponible dans le terminal en ajoutant les binaires ACHE à la variable d’environnement PATH :
export ACHE_HOME="{path-to-cloned-ache-repository}/ache/build/install/ache"
export PATH="$ACHE_HOME/bin:$PATH"
Prérequis : Vous devez installer une version récente de Docker. Voir https://docs.docker.com/engine/installation/ pour les détails d’installation sur votre plateforme.
Nous publions des images Docker pré‑construites sur Docker Hub pour chaque version publiée. Vous pouvez exécuter la dernière image avec :
docker run -p 8080:8080 vidanyu/ache:latest
Sinon, vous pouvez construire l’image vous‑même et l’exécuter :
git clone https://github.com/ViDA-NYU/ache.git
cd ache
docker build -t ache .
docker run -p 8080:8080 ache
Le Dockerfile expose deux volumes de données afin que vous puissiez monter un répertoire avec vos fichiers de configuration (dans /config) et conserver les données stockées du robot (dans /data) après l’arrêt du conteneur.
Prérequis : Vous devez avoir le gestionnaire de paquets Conda installé sur votre système.
Si vous utilisez Conda, vous pouvez installer ache depuis Anaconda Cloud avec :
conda install -c vida-nyu ache
NOTE : Seules les versions taguées et publiées sont diffusées sur Anaconda Cloud, la version disponible via Conda peut donc ne pas être à jour. Si vous souhaitez essayer la version la plus récente, veuillez cloner le dépôt et compiler à partir du code source ou utiliser la version Docker.
Avant de démarrer une exploration, vous devez créer un fichier de configuration nommé ache.yml.
Nous fournissons quelques exemples de configuration dans le répertoire config du dépôt pour vous aider à démarrer.
Vous aurez également besoin d’un fichier de configuration du classifieur de pages nommé pageclassifier.yml.
Pour les détails sur la configuration d’un classifieur de pages, reportez-vous à la documentation sur les classifieurs de pages.
Après avoir configuré un classifieur, la dernière chose dont vous aurez besoin est un fichier de graines (seed), c’est-à‑dire un fichier texte brut contenant une URL par ligne. Le robot utilisera ces URL pour amorcer l’exploration.
Enfin, vous pouvez démarrer le robot avec la commande suivante :
ache startCrawl -o <chemin-des-donnees-de-sortie> -c <chemin-de-configuration> -s <fichier-de-graines> -m <chemin-du-modele>
où,
<chemin-de-configuration> est le chemin vers le répertoire de configuration contenant ache.yml.<fichier-de-graines> est le fichier de graines contenant les URL de départ.<chemin-du-modele> est le chemin vers le répertoire du modèle contenant le fichier pageclassifier.yml.<chemin-des-donnees-de-sortie> est le chemin vers le répertoire de sortie des données.Exemple d’exécution d’ACHE avec le modèle de classifieur de pages pré‑entraîné et le fichier de graines fournis dans le dépôt :
ache startCrawl -o output -c config/sample_config -s config/sample.seeds -m config/sample_model
Le robot s’exécute et affiche les logs dans la console. Appuyez sur Ctrl+C à tout moment pour l’arrêter (cela peut prendre un certain temps).
Pour des explorations longues, exécutez ACHE en arrière‑plan avec un outil comme nohup.
ACHE peut produire des données dans plusieurs formats. Les formats actuellement disponibles sont :
Pour plus de détails sur la configuration des formats de données, consultez la page documentation des formats de données.
Les retours des utilisateurs sont les bienvenus. Veuillez soumettre vos suggestions, questions ou rapports de bugs via le traqueur de problèmes Github.
Nous avons également un salon de discussion sur Gitter.
Les contributions de code sont les bienvenues. Nous utilisons un style de code dérivé du Google Style Guide, mais avec 4 espaces pour les tabulations. Un fichier de configuration du formateur Eclipse est disponible dans le dépôt.