Comment obtenir du contenu Wikipédia en utilisant L'API Wikipédia?

je veux obtenir le premier paragraphe d'un article de Wikipédia.

Quelle est la requête API pour le faire?

38
demandé sur octosquidopus 2011-08-25 08:50:19

9 réponses

voir cette section sur le MediaWiki docs

ce sont les paramètres clés.

prop=revisions&rvprop=content&rvsection=0

rvsection = 0 spécifie de ne retourner que la section de tête.

voir cet exemple.

http://en.wikipedia.org/w/api.php?action=query&prop=revisions&rvprop=content&rvsection=0&titles=pizza

pour obtenir le HTML, vous pouvez utiliser de même que l'utilisation de l'action=parse http://en.wikipedia.org/w/api.php?action=parse§ion=0&prop=text&page=pizza

notez que vous devrez supprimer tous les modèles ou infoboxes.

40
répondu Gabe 2011-08-25 05:12:41

voir y a-t-il une API Wikipédia propre pour récupérer le sommaire du contenu? pour les autres solutions proposées. En voici un que j'ai suggéré:

il y a en fait un très beau prop appelé extraits qui peut être utilisé avec des requêtes conçues spécifiquement à cet effet. Les extraits vous permettent d'obtenir des extraits d'articles (texte d'article tronqué). Il y a un paramètre appelé exintro qui peut être utilisé pour récupérer le texte dans la section zéroth (aucun actif supplémentaire comme des images ou des infoboxes). Vous pouvez également récupérer des extraits avec une granularité plus fine comme par un certain nombre de caractères ( échars ) ou par un certain nombre de phrases( expressions )

voici un exemple de requête http://en.wikipedia.org/w/api.php?action=query&prop=extracts&format=json&exintro=&titles=Stack%20Overflow et le API sandbox http://en.wikipedia.org/wiki/Special:ApiSandbox#action=query&prop=extracts&format=json&exintro=&titles=Stack%20Overflow pour expérimenter plus avec cette requête.

s'il vous plaît noter que si vous voulez le premier paragraphe spécifiquement, vous avez encore besoin d'obtenir la première étiquette. Cependant, dans cet appel D'API il n'y a pas d'autres atouts comme les images à analyser. Si vous êtes satisfait de cette introduction sommaire, vous pouvez récupérer le texte en exécutant une fonction comme strip_tag de php qui suppriment les balises html.

27
répondu AnthonyS 2017-05-23 11:47:15

je le fais de cette façon:

https://en.wikipedia.org/w/api.php?action=opensearch&search=bee&limit=1&format=json

La réponse que vous obtenez est un tableau avec les données, facile à analyser:

[
  "bee",
  [
    "Bee"
  ],
  [
    "Bees are flying insects closely related to wasps and ants, known for their role in pollination and, in the case of the best-known bee species, the European honey bee, for producing honey and beeswax."
  ],
  [
    "https://en.wikipedia.org/wiki/Bee"
  ]
]

pour obtenir seulement le premier paragraphe limit=1 est ce dont vous avez besoin.

15
répondu gugol 2016-05-27 16:26:04

si vous avez besoin de faire cela pour un grand nombre d'articles, alors au lieu de consulter directement le site web, envisagez de télécharger un dump de base de données Wikipédia et d'y accéder par L'intermédiaire d'une API telle que JWPL .

3
répondu Psychonaut 2012-08-04 15:09:15

vous pouvez obtenir L'introduction de L'article dans Wikipedia en questionnant des pages telles que https://en.wikipedia.org/w/api.php?format=json&action=query&prop=extracts&exintro=&explaintext=&titles=java . Vous avez juste besoin d'analyser le fichier json et le résultat est du texte simple qui a été nettoyé, y compris la suppression des liens et des références.

2
répondu ccy 2015-12-17 03:31:08
<script>    
    function dowiki(place) {
        var URL = 'https://en.wikipedia.org/w/api.php?format=json&action=query&prop=extracts&exintro=&explaintext=';

        URL += "&titles=" + place;
        URL += "&rvprop=content";
        URL += "&callback=?";
        $.getJSON(URL, function (data) {
            var obj = data.query.pages;
            var ob = Object.keys(obj)[0];
            console.log(obj[ob]["extract"]);
            try{
                document.getElementById('Label11').textContent = obj[ob]["extract"];
            }
            catch (err) {
                document.getElementById('Label11').textContent = err.message;
            }

        });
    }
</script>
2
répondu SHAHZAD ALAM 2016-11-15 21:55:20

vous pouvez télécharger la base de données Wikipédia directement et analyser toutes les pages en XML avec Wiki Parser , qui est une application autonome. Le premier paragraphe est un noeud distinct dans le XML résultant.

alternativement, vous pouvez extraire le premier paragraphe de sa sortie en clair.

1
répondu PlinyTheElder 2015-01-29 16:33:32

vous pouvez utiliser JQuery pour faire cela. D'abord créer l'url avec les paramètres appropriés. Cochez cette option lien pour comprendre la signification des paramètres. Ensuite, utilisez la méthode $.ajax() pour récupérer les articles. Notez que wikipedia n'autorise pas les requêtes d'origine croisée. C'est pourquoi nous utilisons dataType : jsonp dans la requête.

var wikiURL = "https://en.wikipedia.org/w/api.php";
wikiURL += '?' + $.param({
    'action' : 'opensearch',
    'search' : 'your_search_term',
    'prop'  : 'revisions',
    'rvprop' : 'content',
    'format' : 'json',
    'limit' : 10
});

 $.ajax( {
    url: wikiURL,
    dataType: 'jsonp',
    success: function(data) {
       console.log(data);
    }
} );
1
répondu riteshkasat 2017-05-26 00:14:45

vous pouvez utiliser le champ extract_html du point final du repos sommaire pour ceci: par exemple https://en.wikipedia.org/api/rest_v1/page/summary/Cat .

Note: cela vise simplement le contenu un peu en supprimant la plupart des prononciations, principalement entre parenthèses dans certains cas.

0
répondu Bernd S 2018-04-19 16:48:59