J'ai besoin de vérifier si un article Wikipedia est en vedette ou non. Comment faire cela en utilisant l'API Wikipedia? Si ce n'est pas pris en charge, y at-il une fonction API de Wikipedia pour obtenir la liste des articles en vedette Wikipedia?Comment vérifier si l'article Wikipedia est en vedette ou ne pas utiliser l'API?
Répondre
Je ne sais pas si cela est possible avec une fonction API de Wikipedia. Cependant, cela peut être fait en utilisant du code Python assez ordinaire.
>>> from lxml import html
>>> import requests
Récupère la page qui répertorie tous les articles présentés.
>>> page = requests.get('https://en.wikipedia.org/wiki/Wikipedia:Featured_articles').content
Parse convient à la recherche. Supposons que nous recherchons l'article wikipedia intitulé «Château de Melbourne».
>>> wiki_title = 'Melbourne Castle'
Trouver des liens avec ce titre.
>>> links = tree.xpath('.//a[@href="/wiki/%s"]'%wiki_title.replace(' ', '_'))
Si links
est une liste non-vide, ce qui signifie un lien vers un article avec le titre « Castle Melbourne » a été trouvé, puis imprimer un résultat convenable, ou autrement.
>>> if links:
... links[0].text + ' is a featured article'
... else:
... links[0].text + ' is NOT a featured article'
...
'Melbourne Castle is a featured article'
Je viens de trouver un moyen de faire that.I pourrait obtenir toutes les pages dans une catégorie à l'aide Categorymembers
https://www.mediawiki.org/wiki/API:Categorymembers
probablement vérifie pour Wikidata badges (example) l'approche la plus sémantique et portable, bien que le repsonse le format est un peu obscur.
Vous pouvez également rechercher la catégorie d'article sélectionnée via le module API list=categorymembers
ou pour le modèle d'article vedette via le module prop=transcludedin
.