Comme je suis trop chargée (boulot, formation parallèle), les deux dernières semaines je n’étais pas trop active pour l’avancement du projet. En plus je n’ai pas bien choisi le moment de tomber malade. Pendant les vacances de Noël je me rattraperai.
A cette étape notre projet se sépare en deux: un projet pour les mots en français et en bulgare et un projet pour les mots en français et en arabe. Ainsi chacun travaillera sur la langue qu’il parle.
Je suis en train d’imbriquer les boucles dans laquelles se fait l’aspiration et le dumpage des sites. Pour transmettre au minigrepmultilingue l’encodage de la page: l’option [/o] , qu’on met à la fin de l’expression régulière pour faire la recherche de l’encodage une seule fois, ne marche pas sur mon cygwin. Pas d’explication. J’ai bon cherché. Le problème est que certain sites ont l’instruction <..........charset=bla-bla> deux fois dans le code source HTML. Solution rudimentaire -- essayer de faire une vérification de la variable affectée avec la valeur de $1 (le résultat des occurrences) et de la modifier si elle est plus longue que attendu.
J’ai fait un mini-programme en Perl pour tester le module HTML::Entities. Je suis déçue. Il ne marche pas correctement sur le bulgare. Apparemment ses outils ne prennent pas en compte toutes les entité existantes. Le groupe « » précèdent l’ASCII code du symbole. Il faux juste faire une correspondance. J’ai trouvé un très bon site pour tout décodage du cyrillique:
Mais, je laisse pour une autre fois le développement d’un programme qui convertit une entité en symbole visible standard (Unicode par exemple). Je rechercherai de nouveaux sites bulgares qui ne contiennent pas d’entités.
Normalement le script est écrit, il reste de le faire marcher et d’ajouter des nuages…avant de construire le site officiel de notre …aventure ….dans le monde des mots sur le web…
Certaines de nos pages web contient des entité HTML. Ce sont des expressions qui commencent par « », suivis de quelques chiffres (3 pour le caractères grèques, 4 pour les cyrilliques, 5 pour les chinois, d’après ce que j’ai remarqué). Dans ce formats elles sont en décimal précédé de « ». C’est un moyen de visualiser n’importe quel caractère.
Pour faire l’opération de décodage des entités j’ai trouvé un module en perl HTML::Entities dans la classe HTML-Parser-3.59.
Pour l’installer, il suffit de se placer dans le root et d’écrire:
$ perl Makefile.PL LIB=~/local/lib
et après:
$ make
$ make test
$ make install
ou bien de le télécharger directement:
perl -MCPAN -e ‘install HTML::Parser’.
Comme une partie des sites ne sont pas en UTF-8, il faudra les trasncoder. Le module HTML-Encoding-0.60 permet de déterminer l’encodage de la page HTML ou XML.
La suite va montrer si j’arrive à integrer les modules dans le script.
Notre deuxième script doit aspirer les pages web correspondant aux urls et les sauvegarder dans le répertoire PAGES-ASPIREES.
Nous utilison la commande wget -0 dans le format:
wget -O ./PAGES-ASPIREES/$i.html $nom
‘nom’ contient le url lu depuis les trois fichiers TXT avec les sites par langue, ‘i’ est incrémenté après chaque lecture de url.
Dans les boucles FOR du premier script, nous avons rajouté cette commande. Aussi, nous avons modifié la présentation des tableaux par langue en rajoutant une colonne suplémentaire avec un lien vers la page aspirée.
Pour rendre les liens cliquables, dans ce deuxième script, aussi comme dans le premier, nous avons utilisé dans le boucles FOR:
qui est ajouté dans le code html de nos pages HTML avec les tableaux.
Le code du deuxième script, sous réserve de modification est :
#!/bin/bash
#initialise les variables
fic1=./URLS/urls_fr.txt;
fic2=./URLS/urls_bg.txt;
fic3=./URLS/urls_ar.txt;
tablo=./TABLEAUX/try_aspirer_v1.html;
#commence la construction du fichier avec les liens des pages aspirées
echo « » > $tablo;
#
# crée le premier tableau ;
echo «
» >> $tablo;
i=1;
#écrit le titre du tableau sur trois cellules
echo «
Boîte en francais
» >> $tablo;
for nom in `cat $fic1`
{
wget -O ./PAGES-ASPIREES/$i.html $nom;
echo «
L’exercice est d’écrire un script qui puisse créer une page en format HTML avec trois tableaux pour chacune des langues. Chaque tableau doit contenir deux colonnes : un url d’un site et un numéro unique par site.
Nous avons voulu expérimenter avec les couleurs du fond et du text dans la page ainsi créée, c’est pourquoi nous avon mis dans la partie du code html
bgcolor=#000000>
Aussi d’après nos « critères de style », nous avons travaillé un peu la couleur et la taille des tableaux en utilisant dans la partie
width=80% border=1 bgcolor=silver.
(Nous nous réservons la possibilité de modifier encore ces paramètres par la suite !).
Dans le script, nous utilisons trois identificateurs fic1, fic2 et fic3 pour indiquer les trois fichiers TXT avec les urls, qui se trouvent dans le répertoire . /TABLEAUX.
A l’aide de trois boucle FOR, par l’instruction ‘echo’, nous ajoutons dans une variable ‘tablo’ le code HTML à ajouter dans un fichier qui va être créer dans le répertoire ./TABLEAUX.
Pour le numéro du site, nous utilision la variable ‘i’.
Notre script, sous réserve de modification est le suivant:
#!/bin/bash
fic1=./URLS/urls_fr.txt;
fic2=./URLS/urls_bg.txt;
fic3=./URLS/urls_ar.txt;
tablo=./TABLEAUX/tableaux_1.html;
#commence la construction du fichier .html avec les 3 tableaux;
echo « » > $tablo;
#
# crée le premier tableau;
echo «
» >> $tablo;
i=1;
#
#écrit le titre du tableau sur deux cellules
echo «
Boîte en francais
» >> $tablo;
#
#ajoute dans le tableau des lignes numérotées avec les adresses urls en français
for nom in `cat $fic1`
{
echo «
Après avoir trouvé une cinquantaine de sites contenant le mot « boîte » en français, bulgare et arabe nous avons procédé à la création de l’arborescence de l’espace de notre projet. Pour préparer l’environnement du projet, nous avons utilisé le script suivant:
#!/bin/bash
# avant de lancer ce script on se place dans le repertoire du projet
# par exemple :
# cd /cygdrive/d/MASTER-TAL
# mkdir PROJET-MOT-SUR-LE-WEB
# cd PROJET-MOT-SUR-LE-WEB
# on peut desormais creer l’arborescence de travail
mkdir ./CONTEXTES;
mkdir ./DUMP-TEXT;
mkdir ./IMAGES;
mkdir ./PAGES-ASPIREES;
mkdir ./PROGRAMMES;
mkdir ./TABLEAUX;
mkdir ./URLS;
# le dossier URLS contiendra le fichier initial d’URLs
Le résultat de l’exécution du script est le suivant:
Commentaires récents