Utilisateur:Klymandre/Mémo API (Catégories)
Listage des catégories
modifierDans la zone habituelle de recherche Wikipédia en haut à droite, je tape : "Catégorie:Canton de Genève" afin d'arriver sur cette page. Si je compte toutes les catégories, j'arrive à 26 (les 22 catégories classées dans "Sous-catégories" plus les 4 "Pages dans la catégorie <<Canton de Genève>>". Constatez l'URL : https://fr.wikipedia.org/wiki/Cat%C3%A9gorie:Canton_de_Gen%C3%A8ve
qui peut aussi s'afficher de manière plus conviviale : https://fr.wikipedia.org/wiki/Catégorie:Canton_de_Genève. C'est bien "Canton_de_Gen%C3%A8ve" que je devrai copier-coller dans ma requête API pour qu'elle fonctionne.
Je peux obtenir une liste plus compacte de ces catégories en utilisant l'API, comme ceci :
https://fr.wikipedia.org/w/api.php?action=query&list=categorymembers&cmtitle=Category:Canton_de_Gen%C3%A8ve&format=xml&cmlimit=500
Qui me donne le résultat suivant :
<api batchcomplete=""> <query> <categorymembers> <cm pageid="1251" ns="0" title="Canton de Genève"/> <cm pageid="4141383" ns="0" title="Police cantonale genevoise"/> <cm pageid="9776255" ns="0" title="Société de sauvetage de Genève"/ <cm pageid="4276643" ns="0" title="Taxe professionnelle communale"/> etc...
Je constate que je ne dois plus utiliser le paramètre gaplimit comme dans la requête précédente, mais cmlimit (cm = Category Members, ce sont ces "cm" qu'on voit au début de chaque ligne). Et j'ai beau mettre une limite à 500, il s'arrêtera à la fin de mes 26 catégories.
Maintenant, si je clique sur la catégorie "Personnalité genevoise" (Dans les "P"), j'obtiens alors deux sections : "Sous-catégorie" et "Pages dans la catégorie <<Personnalité genevoise>>".
La requête :
https://fr.wikipedia.org/w/api.php?action=query&list=categorymembers&cmtitle=Category:Personnalit%C3%A9_genevoise&format=xml&cmlimit=500Va commencer par me lister les pages, et ensuite les catégories avec le mot "Catégorie:" au début, comme ceci : <api batchcomplete=""> <query> <categorymembers> <cm pageid="2901747" ns="0" title="Alexandra de Luxembourg"/> <cm pageid="5369947" ns="0" title="Jules Allemand"/> <cm pageid="2499045" ns="0" title="Georges Amoudruz"/> <cm pageid="3721851" ns="0" title="Louise Artus-Perrelet"/> ... <cm pageid="2428083" ns="14" title="Catégorie:Architecte genevois"/> <cm pageid="2423628" ns="14" title="Catégorie:Artiste genevois"/> <cm pageid="2428214" ns="14" title="Catégorie:Personnalité genevoise du cinéma ou du théâtre"/> etc...
Catégories d'une certaine page
modifierAdmettons que je désire obtenir la liste de toutes les catégories de la page "Spirou"
Depuis le bac à sable :
Rubrique main : action = query
si on veut : format : xml
Ensuite, du coup, dans la colonne de gauche, on peut choisir :
Rubrique : action=query
A droite : prop : categories
A droite, beaucoup plus bas : titles : spirou
Voici le lien vers le bac à sable avec ces paramètres Equivalent : Cliquer sur "Faire la demande"
Pour éviter les catégories cachées :
A gauche, choisir prop=categories
A droite, clshow : !hidden