Explication

Dans la dernière section, nous avons présenté le script avec lequel on a travaillé dans le projet.

Maintenant, nous voudrions vous expliquer les différentes étapes de notre script.

 

 

 

 

 

1. ARBORESCENCE DU TRAVAIL

 

On a créé un dossier qui s’appelle PROJET-MOT-SUR-LE-WEB. À l’intérieur, on a créé de sous-répertoires qui contiennent:

–URLS: trois fichiers, chacun contenant les URLS dans chacune des langues avec lesquelles on a travaillé: espagnol, français et khmer.

–PROGRAMMES: le script

–PAGES-ASPIREES: les pages aspirées de chaque URL.

–TABLEAUX: le tableau html que notre programme va créer.

–MOTIFS: on a aussi trois fichiers, chacun avec le motif dans une langue.

Les contenus sont les suivants:

-espagnol: mujer(es)?

-français: femme(s)?

-khmer: (ស្រ្តី)?|(ស្រី)?

–DUMP-TEXT: contenu textuel de chaque URL.

–CONTEXTES: chaque fichier contient les lignes où on a trouvé un de notres motifs dans chaque URL.

–IMAGES

2. LECTURE DES PARAMÈTRES

Au début de notre programme, on va lire les donnéés dont on a besoin pour l´exécuter. Toutes ces donnéés se trouvent dans un fichier qui s’appelle « parametres » et qui se trouve dans notre repertoire PROJET-MOT-SUR-LE-WEB. Le contenu de celui ci est:

-> ./URLS

->./TABLEAUX/tableau.html

->./MOTIFS

La commande read va lire chacune des lignes et va associer la variable DOSSIER_URLS au chemin ./URLS, fichier_tableau au chemin ./TABLEAUX/FICHIER_TABLEAU, et MOTIFS à ./MOTIFS.

3. CORPS DU SCRIPT

On initialise la variable cpttableau, qui va aller depuis 1 à 3, chaque numéro pour une des langues.

3.1 Traitements des URLs

-Premier boucle: for fichier in $(ls $DOSSIER_URLS): la variable $fichier va prendre comme valeurs chaque fichier des URLS qu’il y a dans ce dossier.

-On initialise la variable compteur, qui commence à 0 et va compter chaque URL.

-Affichage de la table: caractéristiques, colonnes…

-Lecture des URLS: on va créer un autre boucle à l’intérieur du dernier boucle, cette fois-ci, ce deuxième boucle va lire chaque URL de chaque fichier contenant les URLS.

-Récupération du header http: si on obtient le code 200 cela veut dire que tout se passe bien…

-Récupération de la page aspirée avec curl.

-Détection d’encodage: on a besoin d’UTF-8. Notre première option pour trouver l’encodage de chaque URL est de chercher dans la page html la balise « » et capturer ce qui se trouve après le symbole égal. Plusieurs choses peuvent arriver…:

1. L’encodage trouvé est UTF-8.

PARFAIT!

-Téléchargement d’URL avec lynx -dump.

-Extraction du contexte: ici on trouve des structures de contrôle pour décider quel est le motif qu’on doit prendre dans chaque cas. Si on se trouve dans le premier tableau, c’est-à-dire, cpttableau vaut 1, le motif sera celui du fichier espagnol, si cpttableau vaut 2, le motif est celui du français, et en dernier lieu, on a le khmer. On utilise egrep pour chercher les motifs et garder les lignes où le mot se trouve dans le fichier CONTEXTE, on va aussi compter le nombre de fois que le motif apparaît dans chaque URL, et en dernier lieu, on va créer un fichier qui contient un index des mots de chaque fichier DUMP et aussi un fichier DUMP-TOTAL où on va stocker le contenu du fichier DUMP TEXT à chaque fois qu’on a téléchargé un fichier DUMP TEXT, et on fera pareil avec les fichiers CONTEXTES.

-Affichage des résultats dans le tableau

2. L’encodage trouve est une chaîne vide.

2.1 Vérifier si la page aspirée existe.

2.1.1 Si la page aspirée existe, on va essayer de trouver l’encodage avec la commande file -i suivie de egrep et on recherche le pattern « charset… ».

a) On trouve l’encodage ($encodagePg) avec file -i. On prend la variable $encodagePg :

– Si elle vaut « UTF-8 », alors on peut procédér aux traitements…

– Si elle n´est pas vide mais elle n´est UTF-8 non plus, on cherche si elle se trouve dans la liste de iconv (iconv -l), commande qu’on utilisera pour transcoder le fichier. Elle nécessite d’un encodage source et d´un encodage cible (c’est pour cela qu’on a besoin de l’encodage original de chaque URL). Si l’encodage se trouve dans la liste iconv : on fait le transcodage avec iconv. Si l’encodage ne se trouve pas dans la liste iconv, on peut rien faire.

b) On ne trouve pas l’encodage après avoir lancé la commande file -i: il reste rien à faire.

2.2.2 La page aspirée n’existe pas, elle n´a pas été créé. On ne peut pas faire plus des traitements.

3. La variable encodage n’est pas vide mais pas UTF-8 non plus.

Comme on connaît l’encodage, il suffit d’utiliser la commande iconv pour transcoder l’URL. Bien sûr, il faut vérifier auparavant que l’encodage source se trouve dans la liste de iconv. Si l’encodage ne se trouve pas dans la liste, on ne peut pas faire plus des traitements.