Programmation Python/Programmer en deux minutes/l'interface de Wikipédia pour programmer

Un livre de Wikilivres.

Nous allons écrire un script en Python et l'exécuter dans une console. Le script va utiliser deux ensembles de commandes définis dans la bibliothèque fournie à l'installation du langage.

L'interface avec Wikipédia se fait via des requêtes à :

https://fr.wikipedia.org/w/api.php?

Par exemple :

https://fr.wikipedia.org/w/api.php?action=query&prop=info%7Crevisions&titles=Accueil

Structure de l'API Wikipédia[modifier | modifier le wikicode]

Obtenir les informations à propos de la dernière révision de la page Accueil :

api.php ? action=query & prop=info|revisions & rvprop=timestamp & titles=Accueil

<?xml version="1.0"?>
<api>
  <query>
    <pages>
      <page pageid="15169" ns="0" title="Accueil" touched="2009-05-10T14:43:08Z" lastrevid="229318" counter="0" length="1878">
        <revisions>
          <rev revid="229318" minor="" user="Savant-fou" timestamp="2009-04-25T16:07:37Z" comment="Ajout rapide de la catégorie [[:Catégorie:Accueil|Accueil]] (avec [[MediaWiki:Gadget-HotCats.js|HotCats]])" />
        </revisions>
      </page>
    </pages>
  </query>
</api>

À l'écriture de ces lignes le 17 mai 2009, le dernier réviseur de la page Accueil était Savant-fou (d · c · b) - cette information est contenue dans la chaîne « user="Savant-fou" » - qui, le 25 avril 2009 à 16:07, a résumé sa modification par le commentaire « Ajout rapide de la catégorie Accueil (avec HotCats) ». Pour connaître le dernier réviseur de la page d'accueil en ce moment, cliquez sur le lien ci-dessus qui affiche ce document XML.


Dernier modifieur de la page[modifier | modifier le wikicode]

1. Ouvrir un éditeur de texte, coller le script suivant (sans caractères spéciaux comme "é" si le fichier est en ASCII au lieu de Unicode)...

...enregistrez ce script (par exemple modifieur_de_la_page.py) et exécutez-le. Le script utilise cette requête pour afficher le dernier modifieur de la page d'accueil.


Note : il s'agit de la méthode utilisant les bibliothèques natives de Python. Une alternative est d'utiliser le framework Pywikibot, qui se charge de l'API de MediaWiki à la place du développeur, rendant la tâche beaucoup plus simple pour des scripts plus perfectionnés.

Boucle des modifieurs du bistro[modifier | modifier le wikicode]

2. Obtenir la liste des derniers modifieurs des Bistros du mois dernier. Ouvrir l'éditeur de texte, écrire ce script utilisant plusieurs fois cette requête... Si vous souhaitez utiliser le code suivant avec Python 3, faites les mêmes modifications que dans le script précédent. C'est-à-dire : rajoutez des parenthèses aux print ; chargez la classe urllib.request (au lieu d'urllib tout court) ; utilisez la fonction urllib.request.urlopen (au lieu de urllib.urlopen) ; transformez le résultat de read en chaîne de caractères (infos = str(url.read(), 'utf_8')).

...enregistrez ce script (par exemple boucle_reviseur_bistro.py) et exécutez-le.

Tous les modifieurs de la page[modifier | modifier le wikicode]

3. La liste des modifieurs de la page d'accueil entre deux dates, et les commentaires de révisions : ouvrir l'éditeur de texte, écrire ce script, faire les mêmes modifications pour Python 3 le cas échéant... Ce script utilise cette requête.

Félicitations, vous utilisez Wikipédia via son API !


Vous pouvez poursuivre cet exercice en programmant du python sur une base vierge, ou alors utiliser la librairie d'instructions Pywikipedia et les scripts Pywikipedia hébergés par Wikimédia. Par exemple, vous devriez être capable de lire un script tel que :

Le script statistics_in_wikitable.py importe quelques librairies d'instructions dont Pywikipedia, définit trois variables, définit l'objet StatisticsBot, puis définit une fonction principale qui est exécutée à la fin du script (par l'instruction try: main(your_page)).


Pour aller plus loin : Catégorie:Programmation.
... en deux minutes avec Python :


Voir aussi le livre : Programmer en deux minutes