IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

EDI, CMS, Outils, Scripts et API PHP Discussion :

Comment marche l'API ? [MediaWiki]


Sujet :

EDI, CMS, Outils, Scripts et API PHP

  1. #1
    Membre habitué
    Profil pro
    Étudiant
    Inscrit en
    Mars 2013
    Messages
    388
    Détails du profil
    Informations personnelles :
    Localisation : France, Seine Saint Denis (Île de France)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mars 2013
    Messages : 388
    Points : 172
    Points
    172
    Par défaut Comment marche l'API ?
    Bonsoir,

    Je débute en API. J'ai lu la documentation sur Mediawiki, pourtant je n'ai toujours pas saisi comment récupérer des données
    Sur leur page ils disent qu'on envoie une requête par HTTP via GET et on aura les données en JSON.
    Je n'ai pas compris. Comment je récupère le query, title ... ?


    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    https://en.wikipedia.org/w/api.php?action=query&titles=Main%20Page&prop=revisions&rvprop=content&format=json
    Merci

  2. #2
    Membre émérite

    Profil pro
    Inscrit en
    Mai 2008
    Messages
    1 576
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2008
    Messages : 1 576
    Points : 2 440
    Points
    2 440
    Par défaut
    Si tu ouvres ce lien dans un navigateur, tu verras les données sous forme de données JSON.

    Il faut que tu en fasses de même avec ton script (avec file_get_contents, cUrl ou Guzzle), que tu récupères le json et le transformes en tableau ou object, et ensuite tu peux récupérer tout ce que tu veux: titres, articles etc...

  3. #3
    Membre habitué
    Profil pro
    Étudiant
    Inscrit en
    Mars 2013
    Messages
    388
    Détails du profil
    Informations personnelles :
    Localisation : France, Seine Saint Denis (Île de France)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mars 2013
    Messages : 388
    Points : 172
    Points
    172
    Par défaut
    Merci beaucoup pour ta réponse.
    J'ai essayé le file_get_contents comme ceci :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    <?php
    $homepage = file_get_contents("https://fr.wiktionary.org/w/api.php?action=query&titles=bouteille&prop=revisions&rvprop=content&format=json");
    echo $homepage;
    ?>
    ça me donne la définition du mot bouteille dans le witionnaire français.
    Et la page ressemble à ça :
    Nom : bouteille-wiktionary-fr.JPG
Affichages : 826
Taille : 424,4 Ko

    Normalement le format est en JSON, mais là je vois un format spécial qui est du wikicode. Comment je pourrais manipuler ça ?

    Merci

  4. #4
    Membre émérite

    Profil pro
    Inscrit en
    Mai 2008
    Messages
    1 576
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2008
    Messages : 1 576
    Points : 2 440
    Points
    2 440
    Par défaut
    C'est du json mais le json contient du wikitext :-)

    Tu dois utiliser json_encode pour transformer ces données en tableau. Par contre, effectivement, l'exemple que tu utilises donne le contenu en wikitext. Pour récupérer le contenu en html, il faut utiliser le paramètre prop=extract.

    Par exemple: https://en.wikipedia.org/w/api.php?a...fm&titles=JSON

    Le HTML de la page se trouve sous la sous-clef "extract".

  5. #5
    Membre habitué
    Profil pro
    Étudiant
    Inscrit en
    Mars 2013
    Messages
    388
    Détails du profil
    Informations personnelles :
    Localisation : France, Seine Saint Denis (Île de France)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mars 2013
    Messages : 388
    Points : 172
    Points
    172
    Par défaut
    Merci pour toutes ces explications
    Ah pas la peine de parser ce wikitext alors.
    Est-il possible d'enlever aussi les balises HTML ou ce n'est pas gênant, en fait c'est pour analyser le texte et extraire certaines informations ?. Quand je mets format=json, j'ai toujours les balises.

  6. #6
    Membre émérite

    Profil pro
    Inscrit en
    Mai 2008
    Messages
    1 576
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2008
    Messages : 1 576
    Points : 2 440
    Points
    2 440
    Par défaut
    Les balises seront toujours là quel que soit le format, car elles font parties des données.

    Pour supprimer les balises, tu peux utiliser strip_tags ou filter_var($content, FILTER_SANITIZE_STRING).

  7. #7
    Membre habitué
    Profil pro
    Étudiant
    Inscrit en
    Mars 2013
    Messages
    388
    Détails du profil
    Informations personnelles :
    Localisation : France, Seine Saint Denis (Île de France)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mars 2013
    Messages : 388
    Points : 172
    Points
    172
    Par défaut
    Merci beaucoup.
    J'aurais une dernière question , j'ai vu qu'il y avait plusieurs solutions pour extraire les données de wikipédia ou wiktionnaire :

    1) API MediaWiki
    2) DBpedia avec SPARQL
    3) Wikidata Query Service avec SPARQL
    4) Extraction des fichiers dumps

    Quelle est la meilleure solution pour extraire les données, sachant que je devrais les mettre ensuite dans une BDD ?
    J'ai essayé la solution 4) en premier mais le fichier est trop lourd.

  8. #8
    Membre émérite

    Profil pro
    Inscrit en
    Mai 2008
    Messages
    1 576
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2008
    Messages : 1 576
    Points : 2 440
    Points
    2 440
    Par défaut
    Aucune idée!

    Je pense que le plus simple c'est l'API, mais je ne connais pas les autres.

  9. #9
    Membre habitué
    Profil pro
    Étudiant
    Inscrit en
    Mars 2013
    Messages
    388
    Détails du profil
    Informations personnelles :
    Localisation : France, Seine Saint Denis (Île de France)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mars 2013
    Messages : 388
    Points : 172
    Points
    172
    Par défaut
    Merci beaucoup

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. comment marche fftw???
    Par aider une débutante dans le forum Bibliothèques
    Réponses: 3
    Dernier message: 11/11/2007, 10h33
  2. [USB]Comment utiliser cette API pour la communication USB
    Par fouguasse dans le forum Entrée/Sortie
    Réponses: 9
    Dernier message: 19/08/2007, 18h18
  3. Comment marche un union ?
    Par Fredri dans le forum Access
    Réponses: 4
    Dernier message: 10/01/2006, 17h46
  4. Comment appeler des API windows en C ?
    Par JuanLopez1966 dans le forum Windows
    Réponses: 6
    Dernier message: 22/12/2004, 10h34
  5. Comment marche GlutSwapBuffers() ?
    Par Sloughidog dans le forum OpenGL
    Réponses: 2
    Dernier message: 29/09/2002, 14h45

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo