Réalistion du programme bash

logo

    Nous avons essayé d'automatiser toutes les étapes de sorte qu'il suffit d'avoir en entrée un dossier contenant toutes les urls à traiter, triés dans des fichiers en fonction de leur sens, pour réaliser d'un coup, toutes les étapes et obtenir un projet en sortie contenant le tableau de présentation des résultats., un fichier log répertoriant les opérations effectuées ainsi que les éventuelles erreurs lors de l'exécution du script et les dossiers comprenants les pages aspirées et les textes dumpés.  Les noms de chaque  fichier en entrée indique le sens du mot barrage dans leurs urls. Ces noms sont utilisés pour le titre de chaque tableau en sortie.
Avant de programmer nous avons écrit l'algorithme au format pdf. Il est sous forme d'un diagramme de flot, ce qui permet d'avoir une vue synthètique du programme.
Ensuite nous l'avons écrit en bash, après avoir lu le guide avancé sur le bash.

Les étapes importantes sont l'aspiration des pages avec wget, le dumpage avec lynx, la recherche des lignes contenant une occurrence du mot barrage avec egrep et la réalisation du tableau en html.

Aspiration:

    Avec wget, nous aspirons les pages une par une, et nous les renommons pour être sûr de ne pas en avoir plusieurs du même nom (problème rencontré lorsque nous traitions toutes les urls d'un coup).
Après étude du manuel de wget, quelques options ont retenu notre attention.
Après l'aspirations, nous vérifions avec un test que la page a bien été créé et qu'elle n'est pas vide (Cela arrive parfois quand wget ne peut pas aspirer) dans ce cas là, on va traiter le prochain url et on incrémente de 1 une variable contenant le nombre d'url invalide.

Dumpage:

    Avec lynx, on transforme les pages aspirées en texte.
Après étude du manuel de lynx, quelques options ont retenu notre attention.
 Si on utilise pas -nolist, à l'intérieur du texte,il reste encore des liens susceptibles de contenir une occurrence de barrage et donc de générer du bruit par la suite. Ces liens se trouvent en général à la fin du fichier dans la partie « référence ». On pourrait donc tronquer le fichier et s'en débarasser.

Acquisition des lignes contenant "barrage":

    Avec egrep : c'est un outil qui permet de sélectionner les lignes contenant un motif sous forme d'expression régulière.
Après étude du manuel de egrep, quelques options ont retenu notre attention.
 L'option -o permettant de définir le motif de toute la ligne, n'est pas compatible avec d'autres options comme -i (pour lever la sensiblité à la casse) ou -c (pour avoir les lignes du contexte). Ceci nous a posé problème car il fallait choisir entre avoir du bruit ou de ne pas avoir les occurence de barrage contenant des majuscules. Au départ, barrage été contenu dans une variable $mot mais pour régler ce problème nous avons fait figurer directement barrage dans le motif sous la forme [bB][aA][rR]....
Par chance, on a trouvé une option dans lynx qui réglait le problème en amont, ce qui permettait d'avoir un résultat satisfaisant avec une recherche simple.
Pour avoir de meilleurs résultats on aurait pu utiliser d'autres programmes comme unitext qui permet de faire une recherche de pattern avancé.

Production du tableau:

    En html, chaque ligne du tableau contient le nom de l'url avec une référence à la page aspirée, un lien vers le texte dumpé, et toutes les lignes respectant le motif recherché par egrep. Nous avons décidé de faire figurer directement les lignes egrepées dans le tableau car cela permet une vie d'ensemble plus fonctionnelle. On s'aperçoit directement des urls qui posent problèmes avec l'expression régulière utilisée dans egrep ou des autres ennuis techniques. Les résultats pourrait aussi être enregistrer dans des fichiers pour d'autres traitements.

A la fin du document, on affiche le nombre d'url qui n'ont pas pu être wgetté et traité.

Appréciation du résultat:

    L'avantage de ce type d'outils et de pouvoir rapidement réaliser un programme dont le résultat peut donner des pistes pour réaliser un travail de plus grande ampleur.
Avec nos résultats, on peut déjà observer les différentes constructions du mot barrage en fonction de ses différents sens, et trouver des requètes plus avancées pour produire un meilleur résultat.  Le but serait de déterminer les contextes correspondant à un sens particulier. Pour ceci, la recherche lexicométrique des mots les plus fréquents dans les textes en fonction de leur usage avec des logiciels tel que lexico3 peut également donner des résulats interessants.