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

Langage PHP Discussion :

Traiter l'API de Wikipédia


Sujet :

Langage PHP

  1. #1
    Candidat au Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Juin 2014
    Messages
    3
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : France, Sarthe (Pays de la Loire)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Juin 2014
    Messages : 3
    Points : 3
    Points
    3
    Par défaut Traiter l'API de Wikipédia
    Bonjour,

    Cela fait maintenant un petit moment que je recherche comme traiter l'api de Wikipédia.

    En effet, je cherche à récupérer le nombre d'habitant, la langue parlée et le pays d'une ville (par ex. Paris)

    J'ai retiré les informations en JSON

    Puis j'ai réussi à trier les informations jusqu'à obtenir ceci :

    {{semi-protection longue}}
    {{Entête label|AdQ}}
    {{autre1|la capitale de la France}}
    {{Infobox Commune de France
    | nom = Paris
    | image = Paris_-_Eiffelturm_und_Marsfeld2.jpg
    | légende = La [[tour Eiffel]] et les gratte-ciel de [[la Défense]] en arrière-plan.
    | blason = Blason paris 75.svg
    | légende blason = Paris#Héraldique, logotype et devise
    | drapeau = Mairie De Paris.svg
    | légende drapeau = Paris#Héraldique, logotype et devise
    | taille drapeau = 120
    | région = [[Île-de-France]] ([[préfecture]])
    | département = Paris ([[préfecture]])
    | arrondissement = [[Arrondissement de Paris|Paris]] ([[Chef-lieu]])
    | canton = [[Chef-lieu]] de 20 cantons (les [[Arrondissements de Paris|arrondissements]])
    | insee = 75056 et de [[Arrondissements de Paris|75101 à 75120]]
    | cp = [[Arrondissements de Paris|75001 à 75020 et 75116]]
    | maire = [[Anne Hidalgo]] ([[Parti socialiste (France)|PS]])
    | mandat maire = [[Élections municipales de 2014 à Paris|2014]]-2020
    | géoloc-département = Paris/Île-de-France/France
    | longitude = 2.351828
    | latitude = 48.856578
    | alt mini = 28
    | alt maxi = [[Point culminant de Paris|131]]
    | superficie = 105.40
    | population = {{Dernière population commune de France}}
    | année_pop = {{Dernière population commune de France|date}}
    | gentilé = Parisiens
    | population agglomération = 12341418
    | année_pop agglomération = [[2012]]
    | siteweb = [http://www.paris.fr paris.fr]
    }}
    Grâce à ce code :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
     
                        $json  = file_get_contents('https://fr.wikipedia.org/w/api.php?action=query&titles=Paris&prop=revisions&rvprop=content&format=json');
                        $json = utf8_encode($json); //Encode le contenu en UTF8
                        $content = json_decode($json);
     
                        foreach($content->query->pages as $key)
                        {
                            echo '<pre>'.print_r($key->revisions[0]->{'*'}, true).'</pre>';
     
                        }
    C'est maintenant que je suis totalement perdu, je n'arrive pas à récupérer les valeurs grâce aux clés !
    J'ai pensé que ce devait être les {{semi-protection longue}}, etc... qui posaient problème et qu'avec mon code je devais les "enlever" comme j'ai fait pour le reste, mais je suis totalement perdu !!!

    Si quelqu'un a une idée de ce que je peux faire ce serait sympa !

    Merci d'avance !

  2. #2
    Modérateur
    Avatar de sabotage
    Homme Profil pro
    Inscrit en
    Juillet 2005
    Messages
    29 208
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations forums :
    Inscription : Juillet 2005
    Messages : 29 208
    Points : 44 155
    Points
    44 155
    Par défaut
    Ton problème est déjà de recolter les informations car aucune des données que tu veux (population, pays) ne sont dans le document json que tu recuperes.
    Pour les autres :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
              foreach($content->query->pages as $page)
                        {
                            $text = $page->revisions[0]->{'*'};
    						preg_match_all("#\|(.+)= (.+)#", $text, $output); 
                        }
    					foreach ($output[1] as $key=>$value) {
    						$value = trim($value);
    						$data[$value] = $output[2][$key];		
    					}
    					echo $data['superficie'];

  3. #3
    Candidat au Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Juin 2014
    Messages
    3
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : France, Sarthe (Pays de la Loire)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Juin 2014
    Messages : 3
    Points : 3
    Points
    3
    Par défaut
    Bonjour,

    Effectivement les informations ne sont pas présentes pour Paris, mais les autres villes que je recherche elles y sont!

    Merci beaucoup ! Ca faisait longtemps que je n'y arrivais pas !

Discussions similaires

  1. Utilisation de l'api Wikipédia
    Par mob220 dans le forum PHP & Base de données
    Réponses: 2
    Dernier message: 23/03/2009, 14h07
  2. Quelle API pour traiter des paramètres d'un programme en ligne de commande ?
    Par Pierre8r dans le forum API standards et tierces
    Réponses: 2
    Dernier message: 19/12/2008, 11h36
  3. API Google - Récupérer et traiter résultats
    Par toki500 dans le forum Langage
    Réponses: 1
    Dernier message: 24/08/2008, 07h03
  4. [OFX] Api pour traiter des données en OFX/QIF
    Par Pakkaï dans le forum Documents
    Réponses: 0
    Dernier message: 30/07/2008, 18h03
  5. API pour traiter des chaines de caractère
    Par publicStaticVoidMain dans le forum API standards et tierces
    Réponses: 7
    Dernier message: 01/02/2008, 00h18

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