Séance #7 Traitement des pages non encodées en utf-8

Nous continuons d’améliorer notre script afin d’exploiter au maximum les données de nos pages aspirées. Il nous faut donc désormais traiter les pages qui ne sont pas encodées en utf-8. Pour ce faire, nous allons chercher l’encodage de la page, savoir si celui-ci est connu de la commande « iconv » et le convertir en utf-8 pour pouvoir ensuite dumper cette page.

Nous utilisons la commande egrep pour trouver où est l’encodage dans la page :

capture3_script_s7

Une fois trouvé, on essaye de savoir quel est l’encodage de la page avec la commande egrep à nouveau et on l’insère dans une variable :

capture2_script_s7

Ensuite, si on ne trouve pas d’encodage, on ne fait rien :

capture1_script_s7

Sinon, on fait le changement d’encodage grâce à la commande iconv et on dump la page avec la commande lynx :

capture4_script_s7

Nous avons également inséré une instruction qui permet de savoir si, dès l’aspiration de la page, il y a un problème ou non. Nous l’avons inséré dans une variable que nous avons appelée aspiration : capture5_script_s7

Si tout se passe bien, on passe à la détection de l’encodage de la page comme nous l’avons vu dans les scripts précédents.

Voici maintenant l’état du script à ce stade :

capture6_script_s7

capture8_script_s7

capture9_script_s7

capture10_script_s7

Nous lançons le script dans le terminal en vérifiant au préalable que nous nos répertoires sont vides et que le contenu du fichier paramètres correspond bien à ce que nous avons indiqué dans le script :

capture7_script_s7

Les tableaux devenant de plus en plus grands, nous ne montrons qu’un aperçu de ce que cela donne mais on y trouve toutes les configurations possibles (c’est-à-dire, si tout se passe bien, s’il y a un problème dans l’aspiration, s’il y a un problème d’encodage et si on a changé l’encodage en utf-8).

capture11_script_s7

Séance #6 Création d’une nouvelle colonne dans le tableau : DUMP

***Nous tenons à nous excuser pour avoir laissé un peu de côté notre blog ces derniers temps. Mais attention, ne pas avoir publié ne signifie pas que nous n’avons pas travaillé. Malheureusement, beaucoup de problèmes accumulés mais ne nous attardons pas là-dessus, nous allons tenter de publier rapidement le reste de nos travaux ! ***

Dans ce nouvel article, nous allons créer une nouvelle colonne dans notre tableau ! Nous allons à présent dumper les pages que nous avons aspirées précédemment, c’est-à-dire que nous allons stocker le contenu des pages aspirées dans un fichier au format texte brut. Mais l’encodage de ces pages nous importe, il faut que ce soit de l’UTF-8 alors si l’encodage est celui-ci, on aspire la page, sinon, on laisse en suspens pour le moment pour s’occuper du changement d’encodage à la prochaine étape. Voici ci-dessous le nouveau script qui permet d’engendrer la nouvelle colonne :

capture4_script_s6

capture5_script_s6

capture6_script_s6

Un peu de changement dans le script, nous avons désormais fait en sorte que les tableaux soient créés à l’aide de boucles imbriquées. Grâce à cela, nous n’avons plus besoin de créer un tableau pour chaque fichier d’URLs. Chaque fichier d’URLs rencontré dans le fichier de paramètres va engendrer un tableau, ce qui réduit de beaucoup la longueur du script. Nous avons aussi modifié le fichier de paramètres afin de pouvoir prendre tous les fichiers d’URLs présents directement depuis le répertoire. De plus, nous avons indenté les différentes boucles et conditions pour avoir un script plus clair et plus facile à lire. Les commentaires aussi sont plus lisibles pour qu’on voie tout de suite ce que fait le script à telle étape.

Donc nous savons désormais faire un tableau HTML qui aspire des pages web, qui les numérote, qui contient ces pages dans un dossier et qui stocke le contenu de ces pages dans des fichiers en fonction de l’encodage que nous souhaitons (ici de l’UTF-8).

Voyons le résultat en lançant le script dans le terminal de commandes :

capture1_script_s6

On peut s’apercevoir que le tableau a bien été créé tel qu’on l’avait nommé dans notre fichier de paramètres :

capture3_script_s6capture2_script_s6

Nous pouvons maintenant regarder le contenu de notre tableau HTML en le lançant dans le navigateur :

capture7_script_s6

capture8_script_s6

capture9_script_s6

capture10_script_s6

capture11_script_s6

capture12_script_s6

capture13_script_s6

capture14_script_s6

La prochaine publication concernera la prise en charge des pages non-encodées en utf-8. On vous expliquera ça plus en détails dans le prochain article !