Projet encadré 2
BOITES A OUTILS

BAO 1
Extraction du contenu textuel des fils RSS

Un fichier de fil RSS est un fichier XML qui ressemble à l'image ci-dessous. Il faut extraire le contenu textuel des balises <title> et <description>.

Pour chaque jour, il y a un fichier RSS par rubrique. Chaque rubrique est identifiée par un numéro : 

L'arborescence des fils RSS est structurée comme suit :  
> 2021 
    > un dossier par mois 
        > un dossier par jour 
            > un fil RSS par rubrique.

Pour récupérer le contenu textuel de chaque fil RSS, on va donc utiliser un programme récursif qui va parcourir toute l'arborescence de fichiers.

Notre programme va prendre en entrée :
- le nom du dossier de l'arborescence
- le numéro de la rubrique de notre choix

En sortie, on aura :
- un fichier de texte brut (TXT) 
- et un fichier XML 
par rubrique. 

Le texte aura été nettoyé grâce à un sous-programme. 

Pour récupérer le contenu des balises, on va utiliser des expressions régulières.

On va faire un programme en Perl et un programme en Python. 

SCRIPTS

LANGAGE INFORMATIQUE MODE D'EMPLOI DU LANCEMENT DU SCRIPT DANS LE TERMINAL TELECHARGEMENT DU SCRIPT ENTIER  COMMENTE
Perl perl bao1_parcours_arborescence_nettoyage.pl nom_dossier numero_rubrique  bao1_parcours_arborescence_nettoyage.pl
Python python3 bao1_parcours_arborescence_nettoyage.py nom_dossier numero_rubrique bao1_parcours_arborescence_nettoyage.py

DEROULEMENT GLOBAL DU SCRIPT EN PYTHON

Le script entier et commenté peut être téléchargé plus haut.

Le programme en Python se déroule globalement de la même façon. Il est juste segmenté un peu différemment. 

On crée deux fichiers : 
- un fichier TXT
- un fichier XML

Puis, on lance la fonction qui va parcourir l'arborescence. On examine chaque élément qui se trouve dans le dossier : 
- si c'est un dossier, on relance le parcours à partir de ce nouveau dossier
- si c'est un fichier, on lance la fonction "extract_un_fil()" qui va permettre d'extraire le contenu textuel du fil RSS.

Dans extract_un_fil(), on utilise ici aussi des expressions régulières pour trouver les titres et les descriptions. Ils sont passés dans la fonction nettoyage() qui fait la même chose que le sous-programme de Perl. 

On écrit les titres et descriptions nettoyés dans le TXT et dans le XML formaté au format XML.

Le programme prend environ 5 secondes pour le traitement d'une rubrique. Il semble donc être plus rapide que le programme en Perl.

RESULTATS