Récuperation du contenu textuel et transformation aux formats TXT et XML

1. Objectif

Les fils RSS sont des types de fichiers XML censés résumer des informations contenues dans une page web. On peut les utiliser pour tenir son public au courant des dernières nouvelles.
Nos supports de travail sont les fils RSS du journal Le Monde.Ils sont composés de balises, notamment les balises "" et les balise "description". Le but de cette première Boîte à outils est d'extraire le contenu de ces balises sur un ensemble de fichiers. On cherche à rassembler les titres et descriptions par rubriques, et à les mettre dans un fichier texte brut ainsi qu'un fichier XML.


2. Comment procéder?

On dispose d'un dossier contenant les fils RSS appelé 2020. Ce dossier contient des sous-dossiers en fonction de la date à laquelle les fils RSS ont été produits. Il faut donc chercher dans l'arborescence le fichier qui a une rubrique qui nous intéresse. On peut utiliser la structure récursive du dossier 2020 à notre avantage, car les mêmes variables reviennent tout le temps (dossier et fichier).


3. Script slurp

On a deux solutions pour rédiger un script Perl : la méthode slurp et la méthode XML::RSS.
Fonctionnement du script slurp :
★ On ouvre les fichiers txt et XML de sortie
★ On parcourt l'arborescence du dossier 2020. Si l'on tombe sur un dossier, on continue à chercher, si on tombe sur un fichier, on lance le traitement.
★ On traite le fichier : on récupère le contenu entre les balises à l'aide d'expressions régulières. Puis, on normalise ce contenu via une sous-fonction de nettoyage.
★ On écrit dans les fichiers de sortie les contenus épurés. Pour le Txt, on l'écrit directement, tandis que pour le XML, on l'entoure de balises.
★ Enfin, on ferme les fichiers.

Données d'entrée : le dossier contenant les fils RSS du journal "Le Monde" de l'année 2020. , le nom de la rubrique à traiter

Commande d'exécution: perl script_BAO1.pl 2020 rubrique

Télécharger le script de BAO1

4. Script XML::RSS

XML::RSS est une bibliothèque contenue dans le module cpan. Elle donne directement accès à une structure de données.Le script fonctionne ainsi:
★ On ouvre les fichiers txt et XML de sortie
★ On parcourt l'arborescence du dossier 2020. Si l'on tombe sur un dossier, on continue à chercher, si on tombe sur un fichier, on lance le traitement.
★ On traite le fichier : on parcourt la liste préconcue des items, on récupère les valeurs titres et les descriptions qui sont déjà détectées grâce à XML::RSS
★ On nettoie le fichier avec des expressions régulières
★ On écrit dans les fichiers de sortie les contenus épurés. Pour le Txt, on l'écrit directement, tandis que pour le XML, on l'entoure de balises.
★ Enfin, on ferme les fichiers.

Données d'entrée : le dossier contenant les fils RSS du journal "Le Monde" de l'année 2020. , le nom de la rubrique à traiter

Commande d'exécution: perl script_BAO1_XMLRSS.pl 2020 rubrique

Télécharger le script de BAO1 XML::RSS

4. Résultats par rubrique

Rubrique A LA UNE (N. 3208):

SORTIE TXT
Script slurp
Script XML::RSS
SORTIE XML
Script slurp
Script XML::RSS

Pour la rubrique International (N. 3210):

SORTIE TXT
Script slurp
Script XML::RSS
SORTIE XML
Script slurp
Script XML::RSS

Pour la rubrique Europe (N. 3214):

SORTIE TXT
Script slurp
Script XML::RSS
SORTIE XML
Script slurp
Script XML::RSS

Pour la rubrique Planète (N. 3244):

SORTIE TXT
Script slurp
Script XML::RSS
SORTIE XML
Script slurp
Script XML::RSS

Pour la rubrique Culture (N. 3246):

SORTIE TXT
Script slurp
Script XML::RSS
SORTIE XML
Script slurp
Script XML::RSS

Pour la rubrique Livres (N. 3260):

SORTIE TXT
Script slurp
Script XML::RSS
SORTIE XML
Script slurp
Script XML::RSS

Pour la rubrique Cinema (N. 3476):

SORTIE TXT
Script slurp
Script XML::RSS
SORTIE XML
Script slurp
Script XML::RSS