web-dev-qa-db-fra.com

Comment utiliser l'API Wikipédia si elle existe?

J'essaie de savoir s'il y a une API wikipedia (je pense que c'est lié au mediawiki?).

Si c'est le cas, j'aimerais savoir comment je dirais à wikipedia de me donner un article sur les new york yankees par exemple.

Quelle serait l'url REST pour cet exemple?

Tous les documents sur ce sujet semblent assez compliqués.

61
chris

Vous devez vraiment vraiment passer du temps à lire la documentation, car cela m'a pris un moment pour regarder et cliquer sur le lien pour le corriger. :/mais par sympathie je vais vous fournir un lien que vous pourrez peut-être apprendre à utiliser.

http://en.wikipedia.org/w/api.php?action=query&prop=revisions&titles=New_York_Yankees&rvprop=timestamp|user|comment|content

C'est la variable que vous chercherez à obtenir. Votre meilleur pari est de connaître la page que vous rechercherez et de remplacer la partie du lien Wikipedia dans le titre, c'est-à-dire:

http://en.wikipedia.org/wiki/New_York_Yankees [Prenez la partie après le wiki /]

->

http://en.wikipedia.org/w/api.php?action=query&prop=revisions&titles=New_York_Yankees&rvprop=timestamp|user|comment|content

[Placez-le dans la variable de titre de la demande GET.

L'URL ci-dessus peut être modifiée pour obtenir les différentes sections que vous voulez ou ne voulez pas. Alors lisez la documentation :)

81
Shadi Almosri

Les réponses ici m'ont aidé à trouver une solution, mais j'ai découvert plus d'informations dans le processus qui peuvent être avantageuses pour ceux qui trouvent cette question. Je pense que la plupart des gens veulent simplement utiliser l'API pour retirer rapidement le contenu de la page. Voici comment je fais ça:

Utilisation des révisions:

//working url:
http://en.wikipedia.org/w/api.php?action=query&prop=revisions&titles=Threadless&rvprop=content&format=json&rvsection=0&rvparse=1

//Explanation
//Base Url:
http://en.wikipedia.org/w/api.php?action=query

//tell it to get revisions:
&prop=revisions

//define page titles separated by pipes. In the example i used t-shirt company threadless
&titles=whatever|the|title|is

//specify that we want the page content
&rvprop=content

//I want my data in JSON, default is XML
&format=json

//lets you choose which section you want. 0 is the first one.
&rvsection=0

//tell wikipedia to parse it into html for you
&rvparse=1

Utiliser des extraits (mieux/plus facile pour ce que je fais)

//working url:
http://en.wikipedia.org/w/api.php?action=query&prop=extracts&titles=Threadless&format=json&exintro=1

//only explaining new parameters
//instead of revisions, we'll set prop=extracts
&prop=extracts

//if we just want the intro, we can use exintro. Otherwise it shows all sections
&exintro=1

Toutes les informations nécessitent de lire la documentation de l'API comme cela a été mentionné, mais j'espère que ces exemples aideront la majorité des personnes qui viennent ici pour une solution rapide.

66
Andy Groff

Voir http://www.mediawiki.org/wiki/API

Plus précisément, pour Wikipedia anglais, l'API se trouve à http://en.wikipedia.org/w/api.php

13
drdaeman

Jetez un œil à ApiSandbox sur https://en.wikipedia.org/wiki/Special:ApiSandbox Il s'agit d'une interface Web pour interroger facilement API . Quelques clics vous créeront l'URL et vous montreront le résultat de l'API.

Il s'agit d'une extension pour MediaWiki, activée sur toutes les langues de Wikipédia. https://www.mediawiki.org/wiki/Extension:ApiSandbox

9

Si vous souhaitez extraire des données structurées de Wikipedia, vous pouvez envisager d'utiliser DbPedia http://dbpedia.org/

Il fournit des moyens d'interroger des données en utilisant des critères donnés à l'aide de SPARQL et renvoie des données à partir de modèles d'infobox Wikipedia analysés

Certaines bibliothèques SPARQL sont disponibles pour plusieurs plates-formes pour faciliter les requêtes

8
Maksym Kozlenko

Si vous souhaitez extraire des données structurées de Wikipedia, vous pouvez également essayer http://www.wikidata.org/wiki/Wikidata:Main_Page

3
brian.clear

Voici un exemple de travail qui imprime la première phrase de la page Wikipedias New York Yankees sur la console de votre navigateur Web:

<!DOCTYPE html>
</html>
    <head>
        <script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.3/jquery.min.js"></script>
    </head>
    <body>
        <script>
            var wikiUrl = "http://en.wikipedia.org/w/api.php?action=opensearch&search=New_York_Yankees&format=json&callback=wikiCallbackFunction";

            $.ajax(wikiUrl, {
                dataType: "jsonp",
                success: function( wikiResponse ) {
                    console.log( wikiResponse[2][0] );
                }
            });
        </script>   
    </body>
</html>

http://en.wikipedia.org/w/api.php est le point de terminaison pour votre URL. Vous pouvez voir comment structurer votre URL en visitant: http://www.mediawiki.org/wiki/API:Main_page

J'ai utilisé jsonp comme dataType pour autoriser les requêtes intersites. Plus d'informations peuvent être trouvées ici: http://www.mediawiki.org/wiki/API:Cross-site_requests

Enfin, assurez-vous de référencer l'API Jquery.ajax (): http://api.jquery.com/jquery.ajax/

2
JSON C11

Wiki Parser convertit les vidages Wikipedia en XML. C'est aussi assez rapide. Vous pouvez ensuite utiliser n'importe quel outil de traitement XML pour gérer les données des articles Wikipedia analysés.

1
PlinyTheElder