web-dev-qa-db-fra.com

Comment obtenir du contenu Wikipedia en utilisant l'API de Wikipedia?

Je veux obtenir le premier paragraphe d'un article de Wikipedia.

Quelle est la requête de l'API pour le faire?

39
bbnn

Voir cette section sur le Documents MediaWiki

Ce sont les paramètres clés.

prop=revisions&rvprop=content&rvsection=0

rvsection = 0 spécifie de ne renvoyer que la section principale.

Voir cet exemple.

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

Pour obtenir le code HTML, vous pouvez utiliser de la même manière: action = parse http://fr.wikipedia.org/w/api.php?action=parse&section=0&prop=text&page=pizza

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

40
Gabe

Je le fais de cette façon:

http://www.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 uniquement le premier paragraphe, limit=1 correspond à ce dont vous avez besoin.

17
gugol

Si vous devez effectuer cette opération pour un grand nombre d'articles, au lieu de consulter directement le site Web, envisagez de télécharger un cliché de base de données Wikipedia, puis de y accéder via une API telle que JWPL .

3
Psychonaut
<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
SHAHZAD ALAM

Vous pouvez obtenir l'introduction de l'article dans Wikipedia en interrogeant des pages telles que https://en.wikipedia.org/w/api.php?format=json&action=query&prop=extracts&exintro=&explaintext=&titles=Java . Il vous suffit d'analyser le fichier JSON. Le résultat est un texte brut qui a été nettoyé, y compris la suppression des liens et des références.

2
ccy

Vous pouvez utiliser JQuery pour le faire. Commencez par créer l'URL avec les paramètres appropriés. Cochez link 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 demandes d'origine croisées. C'est pourquoi nous utilisons dataType : jsonp dans la demande.

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
riteshkasat

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

Vous pouvez également extraire le premier paragraphe de sa sortie en texte brut.

1
PlinyTheElder

Vous pouvez utiliser le champ extract_html du noeud final du résumé REST pour cela: par exemple. https://en.wikipedia.org/api/rest_v1/page/summary/Cat .

Remarque: Ceci vise à simplifier un peu le contenu en supprimant la plupart des prononciations, principalement entre parenthèses dans certains cas.

0
Bernd S