« Programmation Python/Programmer en deux minutes/l'interface de Wikipédia pour programmer » : différence entre les versions

Un livre de Wikilivres.
Contenu supprimé Contenu ajouté
m →‎Voir aussi : corr. lien
→‎Réviseur de la page : correction des erreurs de syntaxe
Ligne 5 : Ligne 5 :
[//fr.wikipedia.org/w/api.php?action=query&prop=info|revisions&titles=Accueil exemple].</small>
[//fr.wikipedia.org/w/api.php?action=query&prop=info|revisions&titles=Accueil exemple].</small>
== Réviseur de la page ==
== Réviseur de la page ==
'''1.''' Ouvrir un éditeur de texte, coller le script suivant (sans caractère spéciaux comme "é")...
'''1.''' Ouvrir un éditeur de texte, coller le script suivant (sans caractère spéciaux comme "é" si le fichier est en ASCII au lieu de Unicode)...
{|width=70% align=center
{|width=70% align=center
|{{boîte déroulante début|titre=reviseur_de_la_page.py}}
|{{boîte déroulante début|titre=reviseur_de_la_page.py}}
Ligne 15 : Ligne 15 :
nom_de_page = "Accueil" # 'urllib' pour URL library et 're' pour regular expression.
nom_de_page = "Accueil" # 'urllib' pour URL library et 're' pour regular expression.


url = "http://fr.wikipedia.org/w/api.php?action=query" +
url = "http://fr.wikipedia.org/w/api.php?action=query&prop=info|revisions&titles=%s&format=xml" % nom_de_page
"&prop=info|revisions&titles=%s&format=xml" % nom_de_page
# affichage
# affichage
# Python 3 : page = urllib.request.urlopen(url)
# Python 3 : page = urllib.request.urlopen(url)
Ligne 23 : Ligne 22 :
infos = page.read() # lit le resultat de la requete a l'url ci-dessus
infos = page.read() # lit le resultat de la requete a l'url ci-dessus
page.close()
page.close()
print "Les informations demandees concernant",
print "Les informations demandees concernant", nom_de_page, "sont les suivantes, en XML :\n\n", infos # Rajoutez des parenthèses pour Python 3 !
nom_de_page, "sont les suivantes, en XML :\n\n", infos # Rajoutez des parenthèses pour Python 3 !


# extraction
# extraction

Version du 21 octobre 2015 à 20:46

0. Pour utiliser en deux minutes l'interface de Wikipédia pour programmer, 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 requêtes HTTP ou HTTPS à wikipedia.org/w/api.php? - exemple.

Réviseur de la page

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

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

Boucle réviseur bistro

2. Obtenir la liste des derniers réviseurs 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.

Liste des réviseurs

3. La liste des réviseurs 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)).

Voir aussi