Les scripts permettent de traiter automatiquement toutes les urls, nous avons au total environ 200 puisqu'il fallait trouver une cinquantaine d'urls par langue.
Lit la liste des langues à traiter (pour éviter de la retaper à chaque essai) et le nom du tableau
Début du HTML : on écrit l'en-tête de la page
Ouvre la première liste d’URL d’une langue
Commence le tableau en mettant en fond l’image correspondante
Curl : Lit une URL, va la chercher et indique s’il y a eu un problème
File : Cherche l’encodage. Problème du Big-5 que file ne sait pas bien interpréter puisqu’il n’y a pas de lettres accentuées et que, pour file, c’est du ISO-8859-1 (il faut donc prévoir un traitement particulier)
Si c’est de l’UTF-8 : Lynx, Dump, extraction du motif, compte occurrences
Si c’est du BIG-5 : Lynx, dump, Iconv en utf-8, extraction du motif, compte occurrences
Sinon
Egrep permet de chercher l’encodage
S’il est reconnu par le système : Lynx, dump, Iconv en utf-8, extraction du motif, compte occurrences
Ajoute les divers textes récupérés dans les Dump et Contexte Globaux
Passe à l’URL suivante jusqu’à la fin de la langue
Ferme le tableau
Passe à la langue suivante et recommence jusqu'à la fin de la liste de langue.
Ferme le HTML
Voici le lien vers le script bash en bash. Pour l'utiliser, il faut taper sur le terminal sh CinqLangues.sh < input.txt
pour appeler le fichier contenant la liste des langues et lui indiquer le nom du tableau. De plus, ce script est pour l'OS du Macintosh, pour unix, il faut changer le I majuscule de la commande file en i minuscule.
Le langage perl m'a semblé plus facile à concevoir grâce à l'utilisation des sous-programmes : on ne répète donc qu'une fois la partie qui cherche le motif en fonction de la langue.
Cependant le script définitif achoppe encore un peu. Il traite certaines lignes mais pas d'autres, compte les mots en anglais et pas en français alors que la syntaxe est strictement la même.
Pour améliorer encore les scripts et traiter le problème de Wikipédia qui, bien qu'annoncé en UTF-8, ne s'enregistre pas correctement, il faudrait créer une boucle de plus et vérifier que le fichier n'est pas vide et le traiter en conséquence s'il l'est.