Nono
Nono est un robot d'indexation. Cette application est utilisée par le site Comarquage.fr.
Elle permet de télécharger réuglièrement tout ou partie d'un site web afin de pouvoir en indexer le contenu.
Objectifs
- Non agressif : l'intervalle entre deux récupération de page est fonction du temps de réponse du serveur distant.
- Stockage des fichiers dans une arborescence d'url «nettoyées».
- Possibilité de retravailler le contenu de la page avant stockage.
- Récursif : l'adresse de base du site est associée à une tâche, le robot ajoute toutes les urls du site automatiquement.
- Deux modes :
- automatique : les pages sont lues à intervalle régulier par un démon.
- manuel : l'ensemble des pages sont lue sur demande.
- Possibilité de mise à jour via le flux RSS du site.
- Gestion des erreurs.
- Gestion des en-têtes ETag et Modified.
Licence et copyright
Nono est un logiciel libre sous licence GNU Affero General Public License version 3 ou supérieure.
Copyright © 2009 Easter-eggs
Téléchargement
Vous pouvez récupérer les sources de la dernière version :
- soit en utilisant Mercurial : hg clone http://hg.infos-pratiques.org/nono
- soit en naviguant dans l'interface web du dépôt Mercurial
- soit en récupérant une archive ("snapshot") depuis cette même interface web.
Installation et utilisation
Nono dépend des logiciels suivants, qui doivent être installés séparément :
- langage de programmation Python
- framework web Pylons
- moteur de template Mako
- ORM SQLAlchemy
- bibliothèque XML lxml
Pour connaître la liste précise des dépendances, ainsi que les versions nécessaires, consulter le fichier setup.py (variable install_requires notamment).
Après avoir téléchargé les sources et installé les logiciels ci-dessus, l'installation de Nono se fait de la manière suivante :
cd nono sudo python setup.py install cd -
Édition du fichier de configuration development.ini pour modifier l'option sqlalchemy.url de la section app:main en fonction de votre base de données. Par exemple, si la base de données utilisée est PostgreSQL et que la base de données s'appelle nono, que l'utilisateur s'appelle nono et que son mot de passe est nono, il faut remplacer cette ligne par :
sqlalchemy.url = postgresql://nono:nono@localhost:5432/nono sqlalchemy.convert_unicode = 1
Création des tables propres à Nono dans la base de données :
paster setup-app development.ini
Lancement de l'application web :
paster serve --reload development.ini
Pour l'utiliser, il ne reste plus qu'à se connecter avec son navigateur web à l'URL indiquée au lancement de l'application web.
Mode automatique
L'ensemble des pages sont lues à intervalle régulier (paramètrable lors de la création de la tâche).
Lancement du démon
cd nono/scripts ./nonod --config-file=../config/nonod.ini --start
Arrêt du démon
cd nono/scripts ./nonod --config-file=../config/nonod.ini --stop
Un fichier de démarrage compatible LSB est disponible (scripts/nonod.init).
Mode manuel
Rafraîchissement complet d'une tâche
cd nono/scripts ./nonod --config-file=../config/nonod.ini --task="Nom de la tâche" --manual
Note : Seules les pages ayant expirées seront téléchargées.
Mise à jour d'une tâche par le flux RSS
cd nono/scripts ./nonod --config-file=../config/nonod.ini --task="Nom de la tâche" --manual --update
Plus d'informations
Pour plus d'informations, vous pouvez consulter et/ou participer à la liste de diffusion Infos-Pratiques.
