Une plate-forme idéale de lecture interactive pour une communauté soudée ?
#8
Comme c’est dans ce fil que j’ai posté pour la dernière fois au sujet de la migration de l’historique de la Taverne, j’y reposte.

J’ai enfin fini ma « POC », et bonne nouvelle : finalement, la migration semble possible.

L’aspiration des pages des différents sujets de la Taverne est ce qui m’a pris le plus de temps. J’ai utilisé pour cela un logiciel nommé WinHTTrack. L’aspiration est très longue : j’ai fait plusieurs essais, et à chaque fois cela m’a pris plusieurs heures. Du coup, je laissais tourner le logiciel (en général la nuit), sans pouvoir faire grand-chose d’autre en attendant. Comme j’ai eu très peu de soirées pour me consacrer à la migration — et aucune journée jusqu’à ce week-end —, et que je ne pouvais, pour des raisons techniques, pas travailler dessus au boulot, ça a beaucoup traîné.

Il faut configurer WinHTTrack de façon à ce qu’il ne s’occupe que des fichiers H.T.M.L. Sinon, il récupère l’univers (notamment des tonnes d’images) et finit par protester qu’il analyse trop de liens. En le restreignant au H.T.M.L., en revanche, il va jusqu’au bout. Le résultat contient quand même un petit paquet de fichiers inutiles. Les fichiers qui nous intéressent, eux, sont préfixés de la lettre t suivie d’une série de chiffres, et correspondent à un vrai sujet. Les sujets qui font plusieurs pages sont divisés en différents fichiers, les fichiers correspondant aux pages autres que 1 ayant un préfixe surnuméraire : la lettre p suivie d’une série de chiffres. Par exemple, pour le Captif du roi-sorcier, on a les deux fichiers suivants : t5150-14-le-captif-du-roi-sorcier.html et t5150p25-14-le-captif-du-roi-sorcier.html. En tout, il y a plus de huit-mille fichiers pertinents.

L’avantage, c’est que ce sont des fichiers H.T.M.L. Il existe donc des outils dédiés à leur traitement. J’ai écrit mon script en Python, et j’ai utilisé un tel outil : une bibliothèque nommée Beautiful Soup, qui m’a énormément facilité la vie. Je m’y suis attelé ce week-end, ça m’a pris l’après-midi, et le résultat est encourageant.

Pour les curieux, mon script est en pièce jointe (j’ai modifié l’extension pour que le forum accepte le fichier). Je l’ai testé sur le sujet du Captif ainsi que sur les deux sujets (oui, bizarrement, il y en a deux) consacrés à un Poignard dans le dos : celui-ci et celui-là. Le résultat est un dictionnaire (une structure de donnée Python) qui répertorie les messages par forums et par sujets. Je l’ai transformé au format JSON, le résultat est également en pièce jointe.

À partir du JSON, il est possible de réimporter les messages n’importe où. Il pourra donc servir de base à une future migration. Mais c’est un autre sujet.

Bien sûr, ce n’est qu’une « preuve de concept ». Il y a encore un peu de travail pour en faire un vrai outil de migration. Par exemple, il y a un bug sur certains messages, dû à du code H.T.M.L. mal formé (une balise fermante </span> sans balise ouvrante ; j’ignore si le responsable est le forum lui-même ou WinHTTrack), qui fait que Beautiful Soup fait l’impasse sur le message concerné. Il est probable qu’il y aura d’autres bugs de ce genre à corriger au fur et à mesure. Il faut aussi voir comment se comporte le script en passant à l’échelle des plus de huit-mille fichiers H.T.M.L. (je n’ai pas testé). De même, la question de l’extraction de la liste des membres reste ouverte (mais je ne pense pas que celle-ci posera de grandes difficultés). Et cætera.

Néanmoins, même s’il faut rester prudent, ma conclusion est que la migration est possible.


Pièces jointes
.txt   scrypt.txt (Taille : 5,46 Ko / Téléchargements : 12)
.txt   resultat.txt (Taille : 29,59 Ko / Téléchargements : 11)
Répondre


Messages dans ce sujet
RE: Une plate-forme idéale de lecture interactive pour une communauté soudée ? - par Jehan - 03/09/2017, 18:18



Utilisateur(s) parcourant ce sujet : 2 visiteur(s)