Objectif
L'objectif
de cette partie est d'extraire le contenu textuel (les titres et les
résumés) de chaque fil RSS en les regroupant par rubrique dans un
fichier portant le nom de cette rubrique. Le tout se faisant en UTF-8
aux formats text et XML.
Cette tâche est accomplie à l'aide
de 4 méthodes différentes présentées ci-dessous. Cependant ces 4
méthodes présentent des points communs.
Points communs
Procédure principaleElle est commune :
- récupère le répertoire contenant les fils à traiter,
- crée un répertoire où seront stockés les résultats,
- initialise un tableau de hashage qui permettra d'éviter la répétition éventuelle des contenus des fils,
- lance le sous-programme qui parcourt récursivement l'arborescence du répertoire,
- ajoute la balise fermante </file> à chaque fichier XML créé.
La procédure principale
Sous-programmesSeuls le parcours récursif, la détection de l'encodage et de la rubrique et le nettoyage du texte sont communs :
- le parcours récursif consiste simplement en un test sur le type de
l'élément pointé : s'il s'agit d'un dossier, la procédure de parcours
est relancée, s'il s'agit d'un fichier, il est traité.
- la détection de l'encodage, qui ne peut être que de l'iso-latin-1 ou
de l'UTF-8, se fait par l'intermédiaire d'une expression régulière
simple.
Détection de l'encodage
- la détection de la rubrique se fait en plusieurs étapes : tout
d'abord, on récupère le contenu de la balise <title> (ex : ) dans
lequel on enlève les diacritiques, puis la suite de caractères "Le
Monde.fr" et tous les espaces. Ce qui reste est l'intitulé de la
rubrique que l'on met en majuscules
Détection de la rurbique
- le nettoyage du titre et du résumé de leurs entités XML, se fait à l'aide d'une
procédure dont l'appel se trouve dans le sous-programme de parcours
d'arborescence. Ce nettoyage se fait à l'aide d'une succession d'expressions régulières.
L'appel de la procédure de nettoyage
Aperçu des fichiers XML obtenus, chaque fichier correspondant à une rubrique.
Tous les scripts suivants sont commentés dans leur fichier source.
Script utilisant seulement des expréssions régulières
Pour télécharger le script cliquez ici :
Si vous voulez le visualiser cliquez ici :
Script utilisant XML::RSS
Pour télécharger le script cliquez ici :
Si vous voulez le visualiser cliquez ici :
Script utilisant XML::XPath
Pour télécharger le script cliquez ici :
Si vous voulez le visualiser cliquez ici :
Script utilisant LibXML
Pour télécharger le script cliquez ici :
Si vous voulez le visualiser cliquez ici :