« Projet:Correction des liens externes » : différence entre les versions

Une page de Wikipédia, l'encyclopédie libre.
Contenu supprimé Contenu ajouté
Irønie (discuter | contributions)
→‎Les erreurs sur le web : nuance 404/410
Irønie (discuter | contributions)
Ligne 159 : Ligne 159 :
=== Informer la communauté de ces pratiques étranges ===
=== Informer la communauté de ces pratiques étranges ===
* Internet Archive est peu connu, et donc l’usage que l’on peut en faire également.
* Internet Archive est peu connu, et donc l’usage que l’on peut en faire également.

== Un bot pour traiter les liens externes, [[Utilisateur:DeepBlue]] ==
*[[Projet:Correction des liens externes/Journal DeepBlue|journal]]
*[[Utilisateur:DeepBlue/Bugs|signaler un bug]]
{{Boîte déroulante
|titre=DeepBlue
|contenu=

=== Présentation du contexte ===

Les liens externes sont nombreux sur Wikipédia. Très nombreux. Certains sont des « sites de fans officiels », d’autres des rapports sur des catastrophes nucléaires.

Comment discerner d’un coup d’œil les liens devenus, avec le temps, inaccessibles ?

Un bot permettrait de rapidement détecter les pages disparues, ou nécessitant un mot de passe.

Je propose donc de finir celui que j’ai commencé à imaginer il y a quelques semaines.

{{ancre|A déterminer}}<!-- ne pas supprimer, requis pour éviter les ruptures de liens internes -->
=== À déterminer ===

Quelques question restent cependant en suspens :
* Le bot peut faire la différence entre une page accessible (code 200, pour simplifier) et une page non accessible (404 ou 403, par exemple). Mais il ne peut pas ''a priori'' faire la différence entre un document existant et non modifié, et un document existant mais vierge ou entièrement modifié.
* Le bot ne peut pas (enfin, pas de manière simple), compte tenu de la conception d’un des « programmes » qu’il utilise (à savoir la classe [http://snoopy.sourceforge.net/ Snoopy] pour PHP), vérifier la validité de liens autres que http (donc pas de ftp, ni de https, ni de gopher, pour ne citer qu’eux).
* Doit-il s’occuper seulement des liens en références, ou de tous les liens externes dans la page ?
*# Tous --[[Utilisateur:Pymouss44|Pymouss]] <small><nowiki>[</nowiki>[[Discussion Utilisateur:Pymouss44|Tchatcher]]<nowiki>]</nowiki></small> - 9 septembre 2008 à 21:45 (CEST)
* Lorsqu’il rencontre un lien externe (ouais, il sait faire la différence entre interne et externe, quand-même), que doit-il faire ?
** Indiquer seulement les liens disparus ou inexistant (404)
** Indiquer les liens { cassés » (400, 500)
** Indiquer tous les types de liens (y compris les liens vraiment accessibles, les redirections{{etc.}})
** (Ceci se fera sans doute à l’aides de petites icônes que je créerai rapidement)
*# Indiquer les liens inexistants et cassés et peut-être en profiter pour les signaler dans une page afin de faciliter la maintenance. --[[Utilisateur:Pymouss44|Pymouss]] <small><nowiki>[</nowiki>[[Discussion Utilisateur:Pymouss44|Tchatcher]]<nowiki>]</nowiki></small> - 9 septembre 2008 à 21:45 (CEST)
*# Indiquer le lien mort par [[Modèle:Lien brisé]], suivi par [[Projet:Correction des liens externes]].[[Utilisateur:Dodoïste|Dodoïste]] <sup>&#91;[[Discussion Utilisateur:Dodoïste|réveille-moi]]&#93;</sup> 9 septembre 2008 à 22:57 (CEST)
* Doit-il indiquer la date, et si oui comment ?
** Date seule ? (et sous quel format)
** Date et heure ? (et sous quel format)
*# Pas forcément, àmha. --[[Utilisateur:Pymouss44|Pymouss]] <small><nowiki>[</nowiki>[[Discussion Utilisateur:Pymouss44|Tchatcher]]<nowiki>]</nowiki></small> - 9 septembre 2008 à 21:45 (CEST)

=== Précisions sur la sécurité ===

Dans tous les cas, ne vous inquiétez pas, il sera longuement et durement éprouvé '''''ailleurs''''' (sur un wiki autre que WP, mais tournant sur MédiaWiki aussi) avant de commencer sa « vraie vie » sur WP.
Dans tous les cas aussi, ne vous inquiétez pas non plus, il tournera sur ma machine.
Dans tous les cas encore, une fois qu’il sera déclaré sûr par la communauté, aucune modification n’y sera apportée.

Que {{u|NicDumZ}} [[Wikipédia:Comité d'arbitrage/Arbitrage/WikiDreamer-NicDumZ|ne s’inquiète pas]], je ne compte bien évidemment pas utiliser d’utilitaires sous des versions obsolètes (quoique Snoopy n’a pas été modifié depuis plusieurs années - c’est surtout parce qu’il est considéré désormais comme stable) {{clin}}

=== Pour le reste ===

Un journal est bien sûr prévu (quoique son codage et son apparence ne sont pas encore entamés, vu que c’est plutôt secondaire), précisant pour chaque article passé à la moulinette le nombre de liens détectés, et les soucis éventuellement rencontrés avec ces liens, ainsi qu’une page pour en forcer l’arrêt (il la vérifiera toutes les quelques minutes, sans doute). Logique, c’est un bot, on va pas le laisser tout faire {{clin}}

Merci d’indiquer vos choix quant aux [[Projet:Correction des liens externes#A déterminer|questions que j’ai posées]], ça me servira ^^

[[Utilisateur:Alphos|Alphos]] <sup><small>&#91;[[Discussion Utilisateur:Alphos|me pourrir la vie]]&#93;</small></sup> 9 septembre 2008 à 20:06 (CEST)
:De manière générale ton idée est assez proche du [[Projet:Correction des liens externes]], non? Amicalement, [[Utilisateur:Dodoïste|Dodoïste]] <sup>&#91;[[Discussion Utilisateur:Dodoïste|réveille-moi]]&#93;</sup> 9 septembre 2008 à 22:56 (CEST)

Déplacé/copié depuis le bistrot du 9 septembre 2008, c’est plus clair ^^ [[Utilisateur:Alphos|Alphos]] <sup><small>&#91;[[Discussion Utilisateur:Alphos|me pourrir la vie]]&#93;</small></sup> 10 septembre 2008 à 06:19 (CEST)



Vu avec Dodoiste ce soir, on a décidé de passer par un crawleur (le bot tournant, comme dit précédemment, en PHP), qui reste plus exhaustif (et risquant moins si ce n’est pas de rebalayages intempestifs des mêmes articles) qu’en passant par les pages au hasard (mon premier choix) ^^



De fait, quelques petites idées de codage plus tard (principalement liées aux boucles et aux capacités de mon ordi), je me rends compte que le crawleur (sur le seul ordi qui me reste) n’apprécierait pas du tout du tout de crawler tout seul comme un grand sur l’ensemble des pages :
* en commençant par la [[Spécial:Toutes les pages|"grande liste"]] (premier [http://fr.php.net/manual/fr/control-structures.foreach.php foreach]),
* puis par la [http://fr.wikipedia.org/w/index.php?title=Special:Toutes_les_pages&from=%21&to=13e_c%C3%A9r%C3%A9monie_des_Oscars première liste intermédiaire de premier niveau] (deuxième foreach),
* puis par la [http://fr.wikipedia.org/w/index.php?title=Special:Toutes_les_pages&from=%21&to=%28130%29_Electre première liste intermédiaire de deuxième niveau] (troisième foreach !),
* et enfin par la récupération et le traitement de tous les liens de chaque article (quatrième foreach !!), je doute que même un serveur des plus respectables résiste bien longtemps ^^'
C’est le genre de trucs qui peut faire sauter ma machine (déjà assez limitée intellectuellement, presque aussi limitée que moi, c’est dire !).

Donc il ne reste qu’une possibilité, un peu nulle certes mais on a pas vraiment le choix (déjà, plus d’un foreach, c’est fortement déconseillé, alors 4 on en parle pas, quelle que soit la machine derrière, surtout vu le nombre de cas de chaque foreach) : on le fait crawler sur chaque liste de deuxième niveau.
Faudra donc que je change manuellement (mais sans risque) de temps en temps une toute petite partie du code (correspondant en fait à l’url de la liste en question). Ça rendra le traitement de tous les articles beaucoup plus long (vu que je pourrai pas le laisser tourner tout seul), mais ça permettra à long terme de faire le travail sans rien qui crame {{espiègle}} De fait, ça permettra aussi de cibler un peu les articles (par exemple [http://fr.wikipedia.org/w/index.php?title=Special:Toutes_les_pages&from=Paris&to=Paris_Universite_Club_%28basket-ball%29 en choisissant les pages à partir de « Paris »]).

Autant faire un fonctionnement article par article me paraît bien trop long et trop peu automatisé (faut pas déconner non plus {{tire langue}}), autant de cette manière on s’évite une bonne partie du travail tout de même, sans avoir besoin de s’acheter un nouvel ordi au bout d’une heure {{sifflote}}

J’ai pensé en revanche remplacer les <nowiki>[liens]</nowiki> par des {{m|lien web}} ou des {{m|lien brisé}} : le premier modèle permettant d’indiquer la date de récupération, le second d’indiquer plus clairement que le lien est brisé (soit dès le premier passage, soit au second, à voir), et de placer l’article dans une [[:Catégorie:Article contenant un lien mort|catégorie idoine]].

Hm… Ouais… Je devrais parler moins, des fois ! {{clin}}

[[Utilisateur:Alphos|Alphos]] <sup><small>&#91;[[Discussion Utilisateur:Alphos|me pourrir la vie]]&#93;</small></sup> 10 septembre 2008 à 07:20 (CEST)

Encore plus meilleur (et merci à DarkoNeko de m’avoir mis sur la bonne voie), l’API me permet d’éviter de passer par les pages [[Spécial:Toutes les pages]]

Du coup, sur les 4 foreach qui seraient nécessaires, on en vire bel et bien 2, sans se limiter à un nombre de pages (si ce n’est les 500 ou 5000, limites de l’API - c’est déjà très honorable) {{=)}}

Ça ira quand-même plus vite comme ça ^^

Encore un week-end assez lourd (une malade dans la famille qui doit se faire opérer demain…), mais j’ai bon espoir de finir le codage du bot dans le courant de la semaine. Les tests complets devraient donc commencer d’ici le week-end prochain, s’il n’y a pas d’impondérables… donc évidemment, avec ma veine, ça risque d’attendre un peu plus (quoi, moi blasé ? {{mdr}})

Des premiers tests de traitement des articles (sans edit), ce soir, donnent déjà des résultats assez plaisants.
La page [[Paris]], par exemple, est traitée intégralement en 5 minutes (ceci tient principalement au grand nombre de liens - à savoir 149 détectés - qui nécessitent de vérifier une à une les pages sans risquer de passer pour un DoS, sait-on jamais, et accessoirement pour me permettre aussi d’utiliser le net pendant que le bot tourne : j’ai mis un temps d’attente de deux secondes entre chaque lien…)

[[Utilisateur:Alphos|Alphos]] <sup><small>&#91;[[Discussion Utilisateur:Alphos|me pourrir la vie]]&#93;</small></sup> 13 septembre 2008 à 05:46 (CEST)


=== L'état des choses (15 septembre 2008 à 02:03 (CEST)) ===
==== Fonctions prévues ====
* Par l’[http://www.mediawiki.org/wiki/API API] :
** Récupération d’une liste de pages {{fait}}
** Récupération des données utiles de chaque page (contenu, date et numéro de la dernière révision, titre) {{fait}}
** Édition des pages à modifier (seulement si le contenu est changé : récupération de l’edit-token, envoi du texte, du commentaire)
** Journal, y compris indication des éventuelles erreurs - conflit d’edit, pages protégées… - {{fait}}
** Édition des pages de discussion {{fait}}
* Sur ma machine :
** Récupération des liens externes (crochets simples) et des [[Modèle:lien web|liens web]], avec toutes les informations qu’ils contiennent (titres, autres paramètres) {{fait}}
** Traitement des liens externes {{fait}} en partie : reste à utiliser le modèle {{m|lien brisé}} pour les liens qui renvoient une erreur
** Contenu du journal {{fait}} en partie : les liens valides sont comptés, les liens invalides énumérés (avec le code d’erreur)

==== Tests préliminaires ====
* Effectués depuis mon ordi vers un wiki sur mon serveur
* Plusieurs « étapes » du bot ont été testées :
** étape 1 : Récupération d’un certain nombre de pages à partir d’une certaine page (paramètres indiqués lors du lancement du script) {{fait}}
** étape 2 : Récupération des données d’une page (contenu, date et numéro de la dernière révision, titre), modification de la page, édition de la page {{fait}}
* Reste le test de l’intégration de l’étape 2 à l’étape 1 (ce qui constituera alors l’intégralité du bot) {{fait}}
* Reste le test depuis mon serveur (histoire de laisser mon ordi un peu tranquille {{clin}}) {{fait}}

==== Propositions ====
* Journal :
** Indique les pages traitées et modifiées {{fait}}/toutes les pages traitées (avec un lien interne vers chaque, dans les deux cas)
** Pour les pages contenant des liens invalides, le nombre de liens valides, le nombre de liens invalides (et l’adresse ou le code complet de chaque lien invalide, avec le code d’erreur ? à déterminer) {{fait}}
** Pour les pages dont la tentative d’édition a renvoyé une erreur, indication du type d’erreur et de la date du traitement qui a échoué (en vue d’un traitement ultérieur) {{fait}}
** Nombre d’articles traités {{fait}}(le bot ne traite pas les articles qui ne sont que des redirections), heure de début et de fin de traitement {{fait}}, durée de traitement {{fait}}, nombre total de liens considérés et de liens invalides traités pendant l’ensemble du traitement.
** Lien du diff {{fait}}
* Fonctions :
** Vérification de la longueur des pages (en dessous d’une certaine longueur, pour un lien valide, le bot pourrait indiquer que le lien est suspect - pas à même la page)
** Indication dans la PdD de l’article que le bot est passé : nombre de liens considérés, de liens invalides traités, heure de traitement, et toute autre info qui vous passe par la tête {{fait}}

Devant l’abondance (!) de réactions, j’ai choisi ce qui me semblait convenable… [[Utilisateur:Alphos|Alphos]] <sup><small>&#91;[[Discussion Utilisateur:Alphos|me pourrir la vie]]&#93;</small></sup> 25 septembre 2008 à 03:22 (CEST)
}}


== Voir aussi ==
== Voir aussi ==

Version du 31 août 2020 à 10:19

Projet Correction des liens externes

De nombreux liens sont créés tous les jours vers des sites web externes. La vie de la toile évoluant rapidement, de nombreux liens pointent vers des pages qui ont disparu. Donc, avant de créer un lien, n’hésitez pas à aller lire attentivement la philosophie de Wikipédia sur ce sujet Aide:Liens externes. Toutefois, malgré ces conseils avisés, il restera des liens à corriger. Ce projet vise donc à corriger les liens externes qui dirigent soit vers une page d’erreur, soit vers une absence de réponse du serveur.

Participants

Calendrier

  • 10 juillet : publication des liens morts de ! à Albatros (entre 2 000 et 3 000 liens morts prévus d’après le premier passage). ▪ Eskimo 1er juillet 2008 à 11:10 (CEST)

J'ai trouvé un lien mort, que faire ?

Un lien mort (ou lien brisé) vous a été signalé (sur la page de discussion ou via le Modèle:Lien brisé) et vous souhaitez savoir comment le corriger ?

  1. Si le lien n’est pas mort et n’est pas une redirection (vers la page d’accueil par exemple), indiquez-le :
  2. Sinon passez au mode d’emploi.

Un des liens de l’archive wikiwix [archive] ne fonctionne pas :

  1. Rapportez un bug sur Discussion Utilisateur:Pmartin/Cache.
  2. Sinon passez au mode d’emploi.

Mode d'emploi

Vous avez trouvé un lien qui n’est pas corrigé par Wikiwix [archive].

  1. Si le lien est une redirection vers la bonne page, remplacez l’adresse du lien par l’adresse de la page vers laquelle il redirige.
  2. Cherchez si le site a été déplacé, si vous retrouvez la page, remplacez le lien.
  3. Si ce n’est pas déjà fait, utilisez le modèle {{lien brisé}} avec la syntaxe suivante : {{lien brisé|url=http://www.example.com|titre=exemple}}
  4. Si une des archives trouvées est valide,
    • si une archive sur Internet Archive (archive.org) est trouvée, vous pouvez remplacer le modèle « Lien brisé» par un {{Lien archive}} et ajouter un paramètre horodatage archive contenant l'identifiant correspondant à une archive valide, tout en conservant les autres paramètres du modèle. Exemple de syntaxe : « {{Lien archive | url = http://www.example.com/ | titre = titre obligatoire | date = date du document |site= site initial |horodatage archive=AAAAMMJJHHMMSS }}) »
    • Pour les autres archives, vous pouvez ajouter l’adresse de l’archive à côté du lien mort en laissant le lien mort, et en renseignant l’archive et sa date :
  5. Si ce n’est pas le cas, il faudra trouver une autre référence :
    • Voir avec les auteurs de l’article ou du projet correspondant. Il pourront vous aider à trouver une autre référence pertinente.
    • Vous pouvez ajouter le lien et l’article dans lequel il a été trouvé dans la section « Liens à corriger à la main ». Le projet vous aidera à corriger le lien.
    • Si le lien est utilisé comme source, ne pas le supprimer, même si vous trouvez une source de remplacement. Un lien mort conserve son importance : possibilité de le retrouver dans divers caches ou archives, le site peut être restauré après un long laps de temps, etc. Si le lien comporte une date de consultation, il vaut toujours comme source.
  6. Merci de l’aide Émoticône sourire Vous trouverez d’autres informations intéressantes sur cette page. Les remarques, suggestions, questions ainsi que la participation au projet sont bienvenues : c’est par là ! Émoticône

Liens à corriger à la main

aucun

Chercher dans les caches et archives

  1. Internet Archive possède peut-être la page dans ses archives. Cela peut aussi peut vous aider à voir le contenu de la page originale, ce qui est très utile pour retrouver une page déplacée (c'est-à-dire qui a changé d'adresse web).
  2. Tout comme les pages en cache sur Wikiwix, dont l'adresse est de la forme : http://archive.wikiwix.com/cache/?url= url de la page. Par exemple, la page http://www.ethnologue.com/show_language.asp?code=fia est en cache à http://archive.wikiwix.com/cache/?url=http://www.ethnologue.com/show_language.asp?code=fia.
  3. Il est possible de chercher dans le cache Google. L'adresse est : http://webcache.googleusercontent.com/search?q=cache: url de la page. Par exemple, http://webcache.googleusercontent.com/search?q=cache:http://www.ethnologue.com/show_language.asp?code=fia. (Des add-ons de Mozilla ou la fonction PageRank de IE semblent pouvoir faire ce genre de recherches, à suivre.)
  4. WebCite (mode d’emploi à rédiger)
  5. Archive-It (mode d’emploi à rédiger)
  6. en:Category:Web archives
  7. en:Category:Online archives

Cache Google

Le cache Google est mis à jour plus ou moins fréquemment suivant le Pagerank de la page à mettre en cache. Ceci est fait par les Googlebot. En théorie, il s’agit d’un cache, toutefois certains sites web fermés peuvent rester en « cache » plusieurs années durant.

Les erreurs possibles

  • Le site a refusé la mise en cache du site (syntaxe ?)
  • Lorsqu’un Googlebot est passé sur le site, le site était indisponible. Le robot n’a pas archivé la page et il est possible qu’aucun autre Googlebot ne vienne archiver le site.
  • Les sous-pages sont inaccessibles : probablement interdites par /nofollow
  • Retiré de l’archive pour des problèmes légaux divers
  • … (à compléter [ex. durée de vie d’une erreur 404 → 6 mois ??]

Navigation

La navigation est difficile, car un lien (interne ou externe) dans cette page ne donne pas la version mise en cache (contrairement à internet archive)

Internet archive

Cette archive dispose d’une mise à jour peu fréquente (donc si un site apparaît et disparait entre deux mises à jour il n’y figure pas), et pas disponible immédiatement (il faut attendre quelques mois).

Les erreurs possibles

Navigation

La navigation est aisée (liens internes et externes automatiquement transformés vers le correspondant de l’archive).


Participants au projet

Vous souhaitez participer au projet, basez vous sur la liste ci-dessous. Les articles sont séparés en petits blocs, d’une dizaine de pages.

Pour corriger des liens :

  1. Vérifiez que les liens sont bien morts (si la page est un message indiquant que l’accès au site sera bientôt rétabli, ne supprimez pas le lien)
  2. Vérifiez que le lien n’a pas déjà été corrigé (après le 3e passage du bot pour vérifier si le message en page de discussion avait été suivi d’une correction)
    1. Si le lien est une redirection, remplacez le lien par un lien direct vers le contenu, barrez
    2. Si le lien n’est pas mort, supprimez le message sur la page de discussion de l’article et rapportez le lien ici.
  3. Si le lien est mort, cf. ci-dessus. Pensez à rayer le lien de la liste des liens à corriger (en utilisant <s></s>). S'il n’y a pas eu de discussion sur le lien (est-il vraiment utile, ce site là correspond-il vraiment au même contenu…), merci aussi de supprimer le message de la page de discussion.
  4. Comme commentaire, vous pouvez laisser :
[[Projet:Correction des liens externes|Projet de correction des liens externes]]

Les erreurs sur le web

  • Erreur 403 : Page d’un site web protégée. Il faut un accès spécial pour accéder à une telle page. Tout le monde ne pouvant y accéder, ces pages sont à proscrire de Wikipédia.
  • Erreur 404 : la page est introuvable. Mais il peut s'agir d'une indisponibilité temporaire.
  • Erreur 410 Gone : la page a définitivement disparue à cette adresse.
  • Erreur 500 : Erreur sur le serveur distant.

Outils

  • Whois Vous permettra de vérifier l’existence du domaine et d’avoir des informations sur ce site. Par exemple, vous pouvez vérifier pour notre site web http://fr.wikipedia.org pour cela, il faudra inscrire wikipedia.org.
  • LinkChecker est une extension pour Firefox qui analyse tous les liens de la page pour déceler les liens morts. Téléchargeable ici.

Liens utiles

Sites n'existant plus

  • adana.bel.tr
  • bitlis.bel.tr
  • quid.fr

À faire

Nouveaux liens morts, publiés le 10 juillet 2008 : Page 1, Page 2, Page 3, Page 4, Page 5, Page 6

Ces liens sont plutôt destinés à une correction manuelle, qui pourrait avoir lieu soit en complément d’une modification automatique des pages, soit en attente de la mise en place de l’automatisation, avec les débats qu’elle pourrait entraîner. ▪ Eskimo 10 juillet 2008 à 19:02 (CEST)[répondre]

Sous-pages de travail

  1. À mettre à jour
  2. remettre les liens dans les articles dès que le lien existe à nouveau.
  3. maintenir (allonger ?) la liste
Ces pages étaient auparavant protégées, il convient maintenant de rétablir ces liens lorsque c’est possible.

Informer la communauté de ces pratiques étranges

  • Internet Archive est peu connu, et donc l’usage que l’on peut en faire également.

Voir aussi