« UniqueIDBot » : différence entre les versions
Aucun résumé des modifications |
Aucun résumé des modifications |
||
Ligne 15 : | Ligne 15 : | ||
=== Navigation à travers les pages === | === Navigation à travers les pages === | ||
* Accès à la page demandée grâce à une requête | * Accès à la page demandée grâce à une requête API | ||
* Vérification de la présence d'un identifiant sur la page | * Vérification de la présence d'un identifiant sur la page | ||
Ligne 37 : | Ligne 37 : | ||
Le bot utilise donc la fonction de hachage [https://en.wikipedia.org/wiki/SHA-1/ SHA-1] sur l'URL de la page. Ceci permet de garantir que l'URL soit à la fois très probablement unique et constant, puisque le nom ou toutes les informations présentes sur la page sont susceptibles d'être non-uniques, erronées ou modifiées. | Le bot utilise donc la fonction de hachage [https://en.wikipedia.org/wiki/SHA-1/ SHA-1] sur l'URL de la page. Ceci permet de garantir que l'URL soit à la fois très probablement unique et constant, puisque le nom ou toutes les informations présentes sur la page sont susceptibles d'être non-uniques, erronées ou modifiées. | ||
La probabilité de collision de la fonction [https://en.wikipedia.org/wiki/SHA-1/ SHA-1] appliquée sur | La probabilité de collision de la fonction [https://en.wikipedia.org/wiki/SHA-1/ SHA-1] appliquée sur un milliard d'URLs est de une chance sur sur 2*10^30. Il est donc très peu probable que ce cas arrive durant la durée de vie de Wikipast. | ||
=== Ajout de l'identifiant === | === Ajout de l'identifiant === | ||
Une fois l'identifiant généré, on l'ajoute sur la page avec une requête | Une fois l'identifiant généré, on l'ajoute sur la page avec une requête API. | ||
=== Code source === | |||
Code source disponible sur [https://github.com/eloigrndl/UniqueIDBot GitHub] | |||
=== Discussion des performances du Bot === | === Discussion des performances du Bot === | ||
Ça fait le café. | Ça fait le café. |
Version du 25 mai 2021 à 15:26
Résumé des fonctionnalités
Le UniqueIDBot attribue un identifiant unique à chaque page Wikipast et l'ajoute à la page en question.
Description technique
Répertoriage de toutes les pages Wikipast
- Obtention de la liste de toutes les pages
- Balisage de la page via la librairie Beautiful Soup
La librairie Beautiful Soup permet d'extraire facilement des informations du code HTML d'une page web. Les URLs de toutes les pages présentes sur Wikipast sont ainsi récupérées.
- Accès à la page demandée grâce à une requête API
- Vérification de la présence d'un identifiant sur la page
Si la page accédée possède déjà un identifiant, le bot passe à la page suivante immédiatement.
Génération de l'identifiant
L'identifiant généré doit correspondre à plusieurs critères :
- Tous les identifiants sont uniques
- Si pour une raison quelconque l'identifiant venait à être supprimé de la page, le nouvel identifiant généré devrait être le même que l'ancien.
- L'identifiant doit être généré à partir d'informations sur la page
Les deux premiers critères sont obligatoires pour garantir le fonctionnement de l'identifiant, dans le cas de la gestion d'une base de donnée par exemple. Une page répertoriée grâce à son identifiant doit toujours pouvoir être reconnue de façon certaine.
Le troisième critère est facultatif mais permet d'apporter un certain ordre dans la génération de l'identifiant. Il est possible d'utiliser une séquence complétement aléatoire, mais on préférera tout de même garder des informations contenues dans l'identifiant.
Le bot utilise donc la fonction de hachage SHA-1 sur l'URL de la page. Ceci permet de garantir que l'URL soit à la fois très probablement unique et constant, puisque le nom ou toutes les informations présentes sur la page sont susceptibles d'être non-uniques, erronées ou modifiées.
La probabilité de collision de la fonction SHA-1 appliquée sur un milliard d'URLs est de une chance sur sur 2*10^30. Il est donc très peu probable que ce cas arrive durant la durée de vie de Wikipast.
Ajout de l'identifiant
Une fois l'identifiant généré, on l'ajoute sur la page avec une requête API.
Code source
Code source disponible sur GitHub
Discussion des performances du Bot
Ça fait le café.