Script python pour récupérer, nettoyer et extraire des informations d'une page web

Le premier travail de ce semestre a été d'écrire un script python permettant de récupérer le code source d'une page web, de le débarrasser de tout contenu non linguistique et enfin d'extraire du contenu restant des informations telles que le nombre de mots, de phrases, d'occurrences de chaque, etc.
Vous trouverez et pourrez télécharger mon script ici.

Quelques explications :
La première partie du script récupère le code source d'une page web (en l'occurrence danstonchat.com) et le stocke dans une variable.
On s'occupe ensuite de faire disparaître toutes les balises, propres au code html ou xhtml ainsi que le javascript car tout cela n'est pas du contenu pur. Après ce nettoyage, on envoie le résultats dans ce fichier texte, il ne reste plus que le contenu linguistique de la page.
Enfin, on utilise quelques fonctions utiles du langage python pour faire des stats sur le document. Celles-ci sont inscrites dans un troisième document que vous pouvez consulter ou télécharger en cliquant ici.

Lors de l'élaboration de ce script, plusieurs étapes se sont succédées, voilà selon moi les plus importantes:

  • Mise en place des outils nécessaires (import des modules d'expressions régulières et d'un module permettant de travailler avec les url).
  • Récupération du code source de la page web choisie.
  • Nettoyage de ce code et création d'un fichier texte le contenant.
  • Création d'un dictionnaire répertoriant les mots présents sur la page ainsi que le nombre d'occurrences.
  • Récupération de statistiques sur la page tels que le nombre total de mots, l'affichage des mots n'apparaissant qu'une seule fois et quelques autres.

Le processus pourrait se représenter ainsi :

schéma

Voilà, vous savez tout de mon travail sur ce script ! Je peux tout de même préciser que j'ai choisi Bash.fr (renommé danstonchat depuis peut-être deux ans) parce que c'est un site je consulte tous les jours et parce que la page d'accueil change à chaque fois qu'on la recharge. Le contenu et les statistiques changeront donc légèrement à chaque fois que vous lancerez le script !
Evidemment, le choix de cette page m'a aussi posé des problèmes. Par exemple, les statistiques ne sont pas vraiment juste ni même d'ailleurs pertinentes à cause du format de cette page. On y trouve des "quotes", qui ont donc été écrites par des utilisateurs d'irc et bien que leur orthographe soit généralement assez correcte, ils utilisent nombre d'abréviation et ne pounctuent pas forcément bien leurs phrases ce qui nous donne un nombre de phrases sans doute faussé (je vous avoue que je ne les ai pas recomptées à la main !). De plus, on a des listes de liens sans ponctuation, ce qui, une fois encore nous donne de longues phrases constituées plutôt d'une suite de mots sans sens.
L'encodage (cette garce !) m'a, bien entendu, posé quelques problèmes. Au moment où j'écris ce texte, les fichiers textes que je crée pour récupérer les infos, les stats, etc. refuse d'afficher correctement les accents si vous avez le malheur de tourner sous Windaube Windows. Peut-être arriverai-je à les régler... (Ou pas à l'heure où je m'apprête à rendre le site...)
Ma page web utilise pourtant utf-8 comme charset, il semblerait que le problème soit dû à MES propres changement d'OS au cours de mon travail.
Pour plus d'informations sur la page web utilisée, vous pouvez vous rendre ici.