Pages

mardi 14 décembre 2010

FUN WORD CLOUDS

En passant du script à une étape plus rigolo, on a construit des nuages de mots, pour plusieurs langues de travail avec Wordle, application utilisable en ligne.
Voici les résultats :
Roumain

Anglais
Français
Espagnol

dimanche 12 décembre 2010

ETAPES LYNX, EGREP


Le dernier script que j’avais affiché sur le blog concernait en principal la commande Wget. Tout ne marche pas très bien, car mes pages aspirées étaient aspirées en théorie mais en pratique le contenu était toujours à 0 et en essayant d’ouvrir une page html, ça ne marchait pas.
On a essayé après remplacer wget avec curl et apparemment l’aspiration des pages a très bien marche, c'est-à-dire que d’un pourcentage de 50 aspiration avec Wget on a passé à un pourcentage de 90 aspiration avec Curl.

Quelques explications générales sur les commandes et le fonctionnement du script :

if [[ $retourcurl == 0 ]] – là je dis si la commande curl marche
then
encodage =$(file -i ./PAGES-ASPIREES/${fic%.*}/$i.html cut -d= -f2);
echo "ENCODAGE initial : $encodage";


Après, dans le script on a plusieurs conditions:

1.Si l’encodage initial est en utf-8 on exécute plusieurs commandes c'est-à-dire on fait le lynx, l’egrep et aussi on utilise une commande qui inclut un autre script en perl: mini-grep-multilingue.
Le fichier multigrepmultilingue nous permet de renforcer la reconnaissance et l’extraction des encodages et permet également d’extraire l’encodage des pages qui sont dans des langues plus difficile à traiter comme le chinois, arabe, etc.

2.Si l’encodage initial est différent de utf 8 on cherche le charset de la page par la commande : if egrep -qi "(charset ?=.*?(\"\')encoding ?=.*?(\"\'))" ./PAGES-ASPIREES/${fic%.*}/$i.html ;

3.Si le charset est détecté on l’extrait en utilisant l’expression :
encodage=$(egrep -m 1 -o'(((utfUTF)-(81632))(gbGB)(kK231218030)(isoISOIso)-8859-(\w)(\w)?(WINDOWSwindows)-1252(WINDOWSwindows)-1256((mM)(aA)(cC)(Rr)(Oo)(Mm)(aA)(nN))us-ascii)'./PAGES-ASPIREES/${fic%.*}/$i.html sort -u)
-l’option –m – arrête de lire le fichier après un comptage max. de lignes.
-l’option l – reconnait l’encodage trouvé de la page s’il fait partie de la liste donné ;
-l’option –o - montre la partie de la ligne adéquate qui correspond au pattern ;

4.Le charset doit être reconnu par iconv;

5.S’il n’est pas reconnu, on ne fait rien et dans le tableau ça va apparaitre un blanc ;

6.S’il est reconnu on exécute les commandes lynx, egrep et le mini-grep-multilingue en perl.

7.On reflet tout cela dans notre tableau en faisant un echo "....." $tablo;

8.Dernière étape on ferme toutes les boucles ouvertes - on utilise fi et/ou les accolades.

Et bien, voyons comment se présente le script :





Voilà comment se passe le traitement pour l’anglais, en utilisant le script affiché plus haut sur la page:



Bon, il faut pas oublier le résultat obtenu, donc je met ici une partie du tableau pour le roumain:

Enfin, après tant de galère avec les histoires d’encodage, on a une victoire, mais, il y a toujours le mais
Je me suis aperçu que j’ai un autre problème, cette fois-ci avec le motif ; c'est-à-dire que le motif est différent pour chaque sens, par exemple, en roumain j’ai quatre mots.
Question : Comment faire pour traiter un motif différent en fonction du sens et comment le refléter dans les tableaux ?
Réponse : à suivre probablement…

samedi 27 novembre 2010

Problème script


Il se passe quelque chose de très étrange avec mon script. Beaucoup de pages ne sont pas aspirées en revanche toute la colonne DUMP est complète mais ... les pages dumpées ne correspondent pas à la page en question. Comme si l'ordinateur elles étaient lues de manière aléatoire!!!


mercredi 24 novembre 2010

Voici le tableau obtenu:


Tablo 5 Colonnes

Nous avons réussi à modifier notre script afin d'obtenir un tableau à 5 colonnes.
Cependant un nombre important de pages ne sont pas aspirées à cause d'un problème d'encodage.
Nous travaillons actuellement sur le script afin de convertir l'encodage d'origine des pages en utf -8.

lundi 15 novembre 2010

Tableaux wget


On a bien avancé dans notre projet, en passant à une variante de script qui contient la commande wget, commande qui nous permet d’aspirer les pages web et les stocker dans des fichiers locaux.

Notre script se présente sous la forme suivante:


Le résultat obtenu se présente, alors sous la forme:


Même si on a obtenu un bel tableau, il nous reste des problèmes à résoudre. A titre d’exemple, on ne sait pas comment faire pour créer une arborescence complète dans le dossier Pages Aspirées, qui contiendra le dossier langue « Français » et après les sous-dossiers Sens1, Sens2, etc. Pour l’instant on a réussi de créer juste les sous-dossiers Sens1, Sens2 etc.

Un 2eme problème reste le chemin vers les dossiers qui apparait complet à l’intérieur du tableau «./URLS/Anglais ».On a essaye la commande basename $fic suivi de cut –d\.-f2, mais ca ne marche pas.

Un 3eme problème est lié au fait que dans les sous-dossiers crées en Pages-Aspirées, j’ai toujours les pages aspirées numéro 2, 3, 4..., mais je n’ai pas la première page aspirée dans chaque sous-dossier-voilà un aperçu de ce que j’ai obtenu:


De même, les pages sont aspirées mais, quand on ouvre la plupart d’entre eux (les pages de Wikipedia, wikisource), on s’aperçoit qu’on ne peut pas y accéder.

En essayant de résoudre ces problèmes-là, on passe aussi à une autre étape, le script modifié avec la commande lynx.

Pour tout commentaire ou indication qui pourrait nous être utile, nous serons reconnaissantes.


mardi 2 novembre 2010

Les tableaux


La dernière séance du cours Projet encadré a été consacré à la création des tableaux des liens dans un editeur de texte (Notepad ++ dans mon cas) en langage HTML et à l’execution sous Cygwin. Grand défi, car le langage html parait simple à première vue, mais en réalité c’est très facile de se perdre dans ses méandres.

Après plusieurs essai, j’avais toujours un problème qui m’apparait lorsque j’executais le script :syntax error near unexpected token `$'in\r''. Cependant, j’ai trouvé la solution en cherchant sur internet, mais de toute façon je me suis rendu compte en feuilletant les cours que les profs nous ont déjà parlé de cette conversion.
Bon, pas de problèmes, parfois le chemin plus long nous permet de comprendre mieux les détails. Donc, j’ai découvert que cette erreur vient d’une incompatibilité, une différence d'encodage des caractères entre Unix/Linux et Windows, notamment sur les caractères de retour à la ligne. Il fallait passer le script du format Windows au format Unix avec la commande : dos2unix tableau.sh et après relancer le script : ./tableau.sh ou sh tableau.sh

Une fois ce problème resolu, j’ai pu passer à des choses plus sérieuses, comme le script qu’on était censé de modifier pour avoir deux colonnes, une avec une numérotation automatique et l’autre avec les liens activés.
J’ai construit le script à partir du modèle qu’on a téléchargé en cours, en introduisant une incrementation qui nous permet de compter et numéroter les lignes et en personnalisant un peu en couleurs de bordures afin de donner un peu de vie à nos tableaux. Toutefois, j’ai ajouté les liens des urls par la commande:
echo "$nom" >> $tablo;






Après avoir executé tout ça sous Cygwin, voilà un petit aperçu du résultat :






Evrika! On pourrait dire, mais cette etape n’est pas finie, car on doit retrouver une solution pour automatiser la tache, afin de ne pas executer le script pour chaque fichier d’ urls. Ici, on reflechit comment introduire une variable ou plusieurs si nécessaire, comment construire une boucle for qui nous permettra de rentrer plusieurs fichiers d’urls.
Allez équipe !

A suivre..