Utilisateur:CodexBot/Complétion liens web

Complétion des liens web

modifier

Seize millions de liens externes sur fr.wikipedia. Certains sont des URL nues collées à la va-vite, d'autres pointent déjà vers le vide. CodexBot passe derrière, inlassablement : il habille les premiers, exhume les seconds.

StatutEn production
Périmètre Espace principal (articles)
Comptes CodexBot, CodexBot2
Cadence 24h ≈ 15 000 URL vérifiées, ≈ 2000 liens morts signalés/corrigés
Approbation Multiples (voir ici)
Signaler un problème Discussion CodexBot

Le problème

modifier

Une URL collée à la hâte au milieu d'une phrase, ça sauve la journée du rédacteur pressé. Trois ans plus tard, le site a changé d'adresse, personne ne sait plus ce qu'il y avait au bout, et la référence ne prouve plus rien.

Un lien externe brut — une simple URL, ou une URL suivie d'un titre tapé à la main — pose plusieurs problèmes :

  • pas de date de consultation, pas d'auteur, rien pour retrouver la source si le site change ou disparaît ;
  • mise en forme non standardisée, différente d'un article à l'autre ;
  • données non réutilisables par Wikidata ou d'autres outils d'export de citations ;
  • impossible à maintenir automatiquement par la suite (détection de lien mort, par exemple).

[avant] https://www.lemonde.fr/planete/article/2020/07/22/le-contact-tracing-a-l-epreuve-de-la-realite_6046893_3244.html
[après] Chloé Hecketsweiler, « Coronavirus : des lenteurs dans le traçage des contacts de malades », Le Monde, (lire en ligne Accès payant, consulté le ).

En le transformant en modèle ({{lien web}} ou {{article}}…), ces informations sont figées, standardisées et exploitables. C'est aussi un vrai gain de temps pour les contributeurs : remettre en forme ces innombrables références « à la main » est un travail long et décourageant.

Ordre de grandeur (mesure d'août 2026)

modifier
IndicateurMesure
Liens externes écrits dans le wikitexte≈ 16 millions (27,6 M en comptant ceux générés par modèles et liens d'autorité)
… dont à l'intérieur d'une balise <ref>82,6 %
Croissance nette700 000 à 800 000 liens/an, soit ≈ 2 000/jour
Taux de liens morts (test direct)11,6 %
Liens morts estimés1,5 à 1,9 million
Articles détectés comme portant un lien mort86 745 (août 2026)
Articles attendus au taux mesuré≈ 836 000

L'écart entre détecté et attendu est d'un facteur 10. Autrement dit, l'essentiel du stock de liens morts n'est pas encore découvert : plus aucun détecteur de masse ne tourne sur fr.wikipedia depuis l'arrêt d'InternetArchiveBot en mai 2020.

Environ 5 % des liens meurent chaque année, soit quelque 2 000 par jour. C'est très exactement le rythme auquel les contributeurs en ajoutent de nouveaux : sans traitement automatique, l'encyclopédie court pour rester sur place.

Méthode : trois échantillons aléatoires indépendants tirés le 7 août 2026 via l'API MediaWiki (2 000 articles pour la volumétrie, 600 pour la croissance appariée par article, 500 URL réellement citées testées en direct en HTTP). Intervalles de confiance à 95 % (score de Wilson pour les proportions). Ordre de grandeur corroboré par Pew Research (11 % sur en.wikipedia, 2023). Corroboré sept 2026 avec crawl de 164'000 URL (11.8% morts).

Fonctionnalités

modifier

Conversion et enrichissement

modifier

Le bot repère les liens externes non mis en forme et les convertit en {{lien web}}, {{article}} ou {{lien brisé}}, en extrayant du site cible : langue, auteurs, titre, nom de la publication, éditeur, DOI, date de publication, date de consultation.

Les métadonnées sont lues dans les formats standard du web : Open Graph, JSON-LD, Dublin Core et TwitterCard, avec recoupement entre eux.

FonctionStatutDétail
🌐 Lien nu✔️Une URL seule, en référence ou en liste : <ref>http://example.com</ref>exemple
🌐🔖 Lien manuel✔️Une URL suivie d'un titre tapé à la main. Le titre existant est conservé et complété. ~89 % des liens manuels sont reconnus et complétés (56 % en automatique) ; rien n'est perdu. — exemple
☑️ Revérification✔️Recontrôle des {{lien web}}/{{article}} dont la date de consultation remonte à plus d'un an : rafraîchissement de consulté le, comblement des champs manquants. — exemple
🔓 Accès au document✔️Signalement des pages à accès payant ou restreint via le paramètre accès url (Wikipédia:Accès url). Tâche prise en charge par CodexBot depuis août 2020, documentée dans Wikipédia:Accessibilité des sources en ligne. — exemple
📄 DOI et documents numérisés! AttendreVérification des DOI, import de liens lire en ligne.

Liens morts et archives

modifier
FonctionStatutDétail
🏛️ Substitution d'archive✔️Un lien mort est remplacé par une archive Internet Archive ou Wikiwix lorsqu'il en existe une, avec mention explicite de la source d'archive dans site. — exemple
🔗 {{Lien brisé}}✔️À défaut d'archive, le lien est balisé comme brisé plutôt que laissé silencieusement cassé, en indiquant le code d'erreur rencontré. — exemple
🕯️ Archive préventive! AttendreAjout d'archive-url et archive-date sur un lien encore vivant, en prévision de sa disparition. En test, à faible cadence : la vérification d'une archive de secours coûte plusieurs requêtes supplémentaires par référence. — exemple

Le bot interroge les deux archiveurs, avec plusieurs candidats d'archive par service et repli de l'un sur l'autre. Pour des liens vivants, le contenu de l'archive est comparé à la page d'origine avant d'être retenu.

Exemple de remplacement d'un lien mort par une archive :

[avant] « mairie-lecastera31.fr/fr/vos-d… »(Archive.orgWikiwixGoogleQue faire ?)
[après] « Dechetterie de Cadours », sur mairie-lecastera31.fr via Internet Archive, (consulté le ).

Exemple d'ajout d'archive sur lien vivant :

[avant] « Patrick Pailloux reconduit en tant que directeur… », sur Acteurs Publics (consulté le )
[après] « Patrick Pailloux reconduit en tant que directeur… » [archive du ], sur Acteurs Publics, (consulté le )

Choix du modèle

modifier

Par défaut, un lien est converti en {{lien web}}. Les articles de journaux scientifiques (d'après Wikidata) sont convertis en {{article}}, de même que certains articles de presse lorsque les métadonnées du site l'indiquent. Ce choix est configurable par nom de domaine, en modifiant cette page.

Fiabilité

modifier

Détection des faux positifs

modifier

Déclarer mort un lien qui ne l'est pas est la principale façon dont un bot de maintenance de liens peut nuire. Plusieurs contrôles s'interposent avant toute conclusion :

PiègeCe que le bot détecte
Soft 404Page répondant HTTP 200 alors que la ressource a disparu : titre du type « Page non trouvée », « Erreur 404 »…
Redirection vers l'accueilL'URL demandée aboutit à la racine du site — le lien est mort même si la réponse est valide
Domaine parkéPage « ce domaine est à vendre », casino, porno
Page-écranMur de cookies, captcha, « vérification de votre navigateur », page de blocage WAF
Page noindexLe site demande lui-même de ne pas indexer la page
Page sans métadonnéesAucune donnée exploitable : le bot s'abstient plutôt que de produire une référence vide

Ces contrôles distinguent la mort réelle d'un blocage anti-robot ou d'une panne passagère. Un blocage (403) ou une limitation temporaire (429, 503) n'est jamais converti en lien mort.

Traitement des codes HTTP

modifier
CodeDescriptionTraitement par le bot
404Page introuvableRecherche Internet Archive/Wikiwix, sinon {{Lien brisé}}
410Contenu définitivement supprimé (Gone)Recherche Internet Archive/Wikiwix, sinon {Lien brisé}
400Requête incorrecte (souvent une ressource déplacée/supprimée)Recherche Internet Archive/Wikiwix, sinon {Lien brisé}
500Erreur interne du serveur sur la ressource demandéeRecherche Internet Archive/Wikiwix, sinon {Lien brisé}
502Passerelle incorrecte sur la ressource demandéeRecherche Internet Archive/Wikiwix, sinon {Lien brisé}
451Retrait légal — le contenu ne reviendra pasRecherche Internet Archive/Wikiwix, sinon {Lien brisé}
Domaine introuvable (DNS) ou réponse videRecherche Internet Archive/Wikiwix, sinon {Lien brisé}
429Trop de requêtes (limitation temporaire)Lien laissé inchangé : un échec temporaire ne prouve rien
503Service temporairement indisponible (maintenance/surcharge)Lien laissé inchangé : un échec temporaire ne prouve rien
3xxRedirection que le bot n'a pas pu suivre (pas d'en-tête Location, ou chaîne trop longue)Lien laissé inchangé : la page est probablement vivante
401Accès désormais restreint (ex. connexion requise)Lien laissé inchangé, pas de modification
402Paiement requis (contenu payant)Lien laissé inchangé, pas de modification
403Accès refusé (souvent un blocage anti-robot, pas une preuve de lien mort)Lien laissé inchangé, pas de modification
Délai dépassé, erreur TLS, échec réseau du botLien laissé inchangé, pas de modification

Politesse de crawl

modifier
  • Le robots.txt des sites consultés est respecté : une URL dont le site interdit l'exploration n'est pas récupérée, la référence est laissée telle quelle.
  • Un délai est appliqué entre deux requêtes, ainsi qu'entre deux éditions d'articles.
  • L'en-tête User-Agent identifie le bot et permet de le contacter.

Contexte

modifier

Le 29 mai 2020, InternetArchiveBot (actif sur des centaines de wikis) a fait sa dernière édition sur frwiki. Personne ne l'a remplacé.

Résultat : 6,8 fois plus de liens d'archive par article sur enwiki que sur frwiki. Les liens y meurent au même rythme ; il s'y trouve seulement un bot pour faire le ménage.

Discussions et micro-sondages

modifier