Sujets-libres.fr

Informatique, logiciels libres, internet, humeurs et… le reste !

Trouver une actualité dominante -> préparer la collecte

Rédigé par -Fred- Aucun commentaire
Comme expliqué précédemment, le projet sur lequel je travaille en ce moment repose sur une collecte préalable de données. l'analyse permettant de trouver l'actualité dominante est réalisée dans un second temps.

Si vous voulez essayer, il vous faudra donc des données sur lesquelles vous appuyer. Pour mettre en place la collecte des données depuis votre machine, vous pouvez suivre ce qui suit. La description que j'indique est valable pour un système GNU/Linux (description pour Ubuntu). Dans le principe, ce sera comparable sur d'autres systèmes.

Installation des paquets nécessaires :
sudo apt-get install python3 python3-psycopg2 postgresql

Les fichiers dont vous aurez besoin par la suite se trouvent à l'adresse suivante :
http://dev.sujets-libres.fr/sources/FluxRSS/

Copiez l'ensemble des fichiers sur votre machine dans un nouveau dossier.
Ouvrez un terminal et placez-vous dans ce dossier (toutes les commandes qui vont suivre seront à lancer depuis cet emplacement).

Les scripts tels qu'il sont faits se connectent à la base de données avec l'utilisateur par défaut de postgresql (postgres). Vous pouvez bien entendu utiliser n'importe quel autre utilisateur mais il ne faudra pas oublier de modifier le fichier identifiantsBDD.txt avant. Pour la suite, j'utiliserai l'utilisateur par défaut de postgresql. Commencez par vous loguer :
sudo su postgres

Avant toute chose, il faut créer la base vide :
createdb fluxRSS

Importer ensuite le schéma de la base :
psql fluxRSS < db-schema.sql

Il n'y a maintenant plus besoin d'être logué avec l'utilisateur postgres. Vous pouvez donc taper :
exit

A ce stade, votre base est vide. Il faut donc dans un premier temps lui indiquer quels flux suivre. Avec votre utilisateur habituel, exécutez ensuite le script d'ajout de nouveau flux et suivez les indications :
python3 AjoutFlux.py

(exemple de flux : http://rss.lemonde.fr/c/205/f/3050/index.rss)

Il est maintenant possible de faire lancer la collecte par la commande suivante :
python3 lectureEtEnregistrementFluxRSS.py

Si la collecte est lancée plusieurs fois, seules les nouvelles entrées du flux sont enregistrées dans la base (lorsqu'un titre existe déjà, il n'y a pas de nouvel enregistrement).

Lancer l'opération manuellement reste une opération fastidieuse. Il est donc intéressant d'automatiser cette tâche. Si la collecte est effectuée localement, il peut être envisageable de lancer le script au démarrage de l'ordinateur. Pour ma part, j'ai opté pour un tâche cron lancée périodiquement toutes les deux heures :
42 */2 * * * cd /home/monUser/cheminVersLesFichiersDuProjet/ && python3 lectureEtEnregistrementFluxRSS.py

Je suis toujours en train de travailler sur l'analyse. Le fichier AnalyseFlux.py est donné à titre indicatif mais ce qu'il retourne n'est pas encore vraiment satisfaisant.

Écrire un commentaire

Quelle est la dernière lettre du mot cxyg ?

Fil RSS des commentaires de cet article