74 votes

Accès à l'image principale de la page wikipedia par API

Existe-t-il un moyen d'accéder à la vignette de n'importe quelle page wikipedia en utilisant une API ? Je veux dire l'image en haut à droite dans la boîte. Existe-t-il des API pour cela ?

71voto

Assaf Shemesh Points 496

Vous pouvez obtenir la vignette de n'importe quelle page wikipedia en utilisant prop=pageimages . Par exemple :

http://en.wikipedia.org/w/api.php?action=query&titles=Al-Farabi&prop=pageimages&format=json&pithumbsize=100

Et vous obtiendrez l'URL complète de la vignette.

63voto

varatis Points 5386

http://en.wikipedia.org/w/api.php

Regardez prop=images .

Il renvoie un tableau de noms de fichiers d'images qui sont utilisés dans la page analysée. Vous avez alors la possibilité d'effectuer un autre appel à l'API pour obtenir l'URL complète de l'image, par exemple : action=query&titles=Image:INSERT_EXAMPLE_FILE_NAME_HERE.jpg&prop=imageinfo&iiprop=url

ou à calculer l'URL via le hachage du nom de fichier .

Malheureusement, alors que le tableau d'images renvoyé par prop=images est dans l'ordre où elles sont trouvées sur la page, le premier ne peut pas être garanti comme étant l'image dans la boîte d'information parce que parfois une page inclura une image avant la boîte d'information (la plupart du temps des icônes pour les métadonnées sur la page : par exemple "cet article est verrouillé").

La recherche dans le tableau d'images de la première image qui contient le titre de la page est probablement la meilleure solution pour l'image de l'infobox.

29voto

Anuraj Points 1953

C'est un bon moyen d'obtenir l'image principale d'une page dans wikipedia.

http://en.wikipedia.org/w/api.php?action=query&prop=pageimages&format=json&piprop=original&titles=India

15voto

kimbaudi Points 2308

Consultez l'exemple de l'API MediaWiki pour obtenir l'image principale d'une page wikipédia : https://www.mediawiki.org/wiki/API:Page_info_in_search_results .

Comme d'autres l'ont mentionné, vous devez utiliser prop=pageimages dans votre requête d'API.

Si vous voulez aussi la description de l'image, vous utiliserez prop=pageimages|pageterms à la place dans votre requête d'API.

Vous pouvez obtenir l'image originale en utilisant piprop=original . Ou vous pouvez obtenir une image miniature avec une largeur/hauteur spécifiée. Pour une vignette avec largeur/hauteur=600, piprop=thumbnail&pithumbsize=600 . Si vous omettez l'un ou l'autre, l'image renvoyée dans le rappel de l'API sera par défaut une vignette dont la largeur et la hauteur sont de 50px.

Si vous demandez des résultats au format JSON, vous devez toujours utiliser la méthode suivante formatversion=2 dans votre requête API (c'est-à-dire, format=json&formatversion=2 ) car il facilite la récupération de l'image à partir de la requête.

Image de taille originale :

https://en.wikipedia.org/w/api.php?action=query&format=json&formatversion=2&prop=pageimages|pageterms&piprop=original&titles=Albert Einstein

Taille de la vignette (600px largeur/hauteur) Image :

https://en.wikipedia.org/w/api.php?action=query&format=json&formatversion=2&prop=pageimages|pageterms&piprop=thumbnail&pithumbsize=600&titles=Albert Einstein

6voto

Giberno Points 743

Méthode 1 : Vous pouvez essayer une requête comme celle-ci :

http://en.wikipedia.org/w/api.php?action=opensearch&limit=5&format=xml&search=italy&namespace=0

dans la réponse, vous pouvez voir le Image étiquette.

<Item>
<Text xml:space="preserve">Italy national rugby union team</Text>
<Description xml:space="preserve">
The Italy national rugby union team represent the nation of Italy in the sport of rugby union.
</Description>
<Url xml:space="preserve">
http://en.wikipedia.org/wiki/Italy_national_rugby_union_team
</Url>
<Image source="http://upload.wikimedia.org/wikipedia/en/thumb/4/46/Italy_rugby.png/43px-Italy_rugby.png" width="43" height="50"/>
</Item>

Méthode 2 : utiliser la requête http://en.wikipedia.org/w/index.php?action=render&title=italy

alors vous pouvez obtenir un code html brut, vous pouvez obtenir l'image en utilisant quelque chose comme PHP Simple HTML DOM Parser http://simplehtmldom.sourceforge.net

Je n'ai pas le temps de vous l'écrire. Je vous donne juste quelques conseils, merci.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X