pluriTAL – BLOG Master pluriTAL [ParisX, ParisIII, INALCO]

AB : journal de bord du 28 novembre

Posted in Projet 2006-2007 by pluritaluser on 9 décembre 2006

Bonsoir,

Voici encore une partie de mon journal de bord d’il y a 10 jours, alors que je découvrais comment créer un tableau html.

(En fait j’ai oublié de le poster avant! ;)

28 novembre

1) comment créer une colonne contenant les pages aspirées avec la commande wget :

Les pages web doivent être aspirées, une par une, lors même de l’exécution du programme fait-tableau. C’est donc à l’intérieur de la boucle, et au début de celle-ci, qu’il faut introduire la nouvelle instruction.

wget -O ./PAGES-ASPIREES/$i.html $nom

-O : sert à appeler le fichier nouvellement créé par le nom qui suit. (Attention au chemin relatif !)

i : est le nom d’une variable compteur que l’on emploie pour numéroter les noms des fichiers créés.

Elle doit être initialisée au début du script et incrémentée à chaque boucle.

Pour insérer les liens aux pages aspirées dans une colonne du tableau :

<td><a href=”../PAGES-ASPIREES/$i.html”>page aspirée $i</a></td>

2) comment créer une colonne contenant le texte simple de mes pages web :

J’utilise lynx, un navigateur qui affiche uniquement les zones de texte d’un site web directement à la console. L’option –dump nous permet de récupérer du texte simple, c.-à-d. sans balises html ni mise en forme.

lynx -dump $nom > ./DUMP-TEXT/$i.txt

. . .

<td width><a href=”../DUMP-TEXT/$i.txt”>page dumpée $i</a></td>

3) comment créer une colonne contenant les contextes du mot « barrage » :

La commande egrep sert à filtrer un texte, c.-à-d. à sélectionner les lignes d’un texte où une chaîne de caractères donnée (dite motif) apparaît.

 

egrep -i -A 2 -B 2 “barrage” ./DUMP-TEXT/$i.txt

-i : indépendamment de la casse

-A n (after) –B n (before) : sélectionne aussi n lignes après et avant la ligne contenant le motif

 

Afin de mettre en évidence le mot « barrage » à chaque fois qu’il apparaît on peut se servir de la commande de substitution sed –s qui nous permet d’entourer le mot par des balises comme <b>, <font color= “…”>ou <strong>.

. . . | sed ’s/[bB][aA][rR][rR][aA][gG][eE]/\<strong\>barrage\<\/strong\>/g’

[bB][aA]… : pour substituer la chaîne “barrage” indépendamment de la casse

… \<\/ … : pour déspécialiser les caractères spéciaux

Maintenant on a deux possibilités pour inclure le contexte dans le tableau : soit on stocke le résultat du filtrage dans des fichiers numérotés et on crée des liens renvoyant à ces fichiers – comme on a fait pour les deux colonnes précédentes ; soit on affiche directement ce résultat dans une colonne du tableau. Pour ce faire il faut affecter le résultat de egrep à une variable.

 

contexte=`egrep -i -A 2 -B 2 “barrage” ./DUMP-TEXT/$i.txt | sed ’s/[bB][aA][rR][rR][aA][gG][eE]/\<strong\>barrage\<\/strong\>/g’`

. . .

<td>$contexte</td>

4) Comment définir la largeur des colonnes :

Je veux laisser plus de place à la 4ème colonne qui contient le texte. J’utilise l’attribut width pour choisir la largeur en pixel ou en pourcentage du tableau.

<td width=”15%”>. . . </td>

<td width=”55%”> . . . </td>

Les tableaux peuvent maintenant être créés. Il serait intéressant d’automatiser cette même tâche afin que tous les tableaux soient crées simultanément. Le nouveau programme demandera donc comme seule entrée le nom du répertoire, qu’il affectera à une variable $rep. Ensuite il devra répéter les opérations de création du tableau pour chaque fichier .txt contenant une liste d’url. De plus il se servira du nom de chaque fichier pour nommer les pages aspirées et les pages dumpées liées à ce sens spécifique du mot « barrage ».

Les noms des fichiers seront du type :

../PAGES-ASPIREES/$fic-$i.html

ce qui permet une bonne lisibilité de notre arborescence.

Pour réaliser tout cela, il faut bien sûr imbriquer deux boucles. C’est un peu compliqué mais faisable. Par contre ce qui me pose problèmes c’est toujours la question des chemins relatifs. J’ai enfin décidé de me placer dans le répertoire $rep lors de l’exécution (cela facilite la lecture des différents fichiers-liste qui se trouvent dans ce même répertoire) et d’en ressortir à la fin du script.

Dernière modification importante : je veux qu’un tableau global soit créé en même temps que les sous-tableaux. Je recopie chaque instruction echo pour l’envoyer à un fichier au nom prédéfini (./JOURNAL/global-tablo.html). Seule différence, le code de début de tableau doit être envoyé une seule fois au fichier, c’est pourquoi il sera placé à l’extérieur des deux boucles.

Le script fait-tableau-2boucle.sh est maintenant opératif.

 

Bon courage pour finir vos projets, et aussi pour tous les autres devoirs.

Vivement les vacances!

Arianna

Laisser un commentaire