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 :

Steam Marketplace : utilisation de cURL pour avoir les cookies ou conversion de devises


Sujet :

Langage PHP

  1. #1
    Membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Janvier 2012
    Messages
    128
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Janvier 2012
    Messages : 128
    Points : 67
    Points
    67
    Par défaut Steam Marketplace : utilisation de cURL pour avoir les cookies ou conversion de devises
    Salut à tous

    Pour un petit projet personnel, j'aurais besoin de récupérer en PHP les dix prix les plus bas pour un objet sur le Steam Marketplace. Pour faire simple, prenons cet objet :

    http://tellu.re/QlKMVj (j'ai raccourci le lien parce qu'autrement il est un peu long ^^)

    j'aimerais pouvoir avec mon script PHP étudier les variations de son prix au cours du temps. J'utilise donc ce petit script :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    $doc = new DOMDocument();
    $doc->loadHTMLFile($_POST['url']); //l'utilisateur entre l'URL de l'objet qui l'intéresse, et je récupère cette URL et je l'utilise ici
    $xpath = new DOMXpath($doc);
     
    $elements = $xpath->query('//span[@class="market_listing_price market_listing_price_with_fee"]'); //je récupère les dix prix de la page qui ont la classe market_listing_price market_listing_price_with_fee
    Jusque là rien de bien compliqué, j'obtiens un tableau avec dix éléments :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    $tableauPrix = array(10);
    for ($i = 0; $i < $elements->length; $i++) {
        $tableauPrix[$i] = $elements->item($i)->nodeValue; //je remplis un tableau pour que ce soit plus propre à manipuler après
    }
    Mais j'ai maintenant un problème plus important qui se présente. En effet, le Steam Marketplace utilisera, si vous n'êtes pas connecté, les devises des vendeurs pour afficher le prix. Donc je peux me retrouver avec des prix avec des devises du monde entier, et donc je peux pas les classer "bêtement" ; il me faut les convertir. Cependant si l'on se connecte sur Steam, le Marketplace affiche cette fois les prix dans la devise de l'utilisateur connecté (dans mon cas l'euro évidemment). Voilà donc ma question : comment résoudre ce problème ? Convertir les devises me semble un peu ardu puisque ça demande d'avoir les valeurs en bourse et qu'en plus ça demande d'analyser chaque prix et de reconnaître la devise... pas pratique. Donc est ce que je pourrais tout simplement utiliser les cookies de mon navigateur dans mon script pour que les prix s'affichent en euros, et si oui comment faire ?

    Merci d'avance

    Thomas

    -

  2. #2
    Membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Janvier 2012
    Messages
    128
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Janvier 2012
    Messages : 128
    Points : 67
    Points
    67
    Par défaut
    Bon, je réponds à ma propre question c'est nice. je sais que je vais me faire taper dessus par les excellents programmeurs s'ils voient ce sujet mais j'ai trouvé la solution :3

    En fait je remplace tout simplement les virgules par des points puis je supprime tout ce qui n'est pas un point ou un nombre. Avant de faire ça, je regarde quelle devise c'est et après je multiplie par le bon nombre pour l'avoir en euro.

    cépabocépasbien mais bon ça marche

  3. #3
    Futur Membre du Club
    Inscrit en
    Décembre 2011
    Messages
    18
    Détails du profil
    Informations forums :
    Inscription : Décembre 2011
    Messages : 18
    Points : 8
    Points
    8
    Par défaut Script sur les devises
    Bonjour,

    Ayant à peu près le même projet, je suis également confronté à se problème de devises. Mais mon problème est un peu différent car je GET par macro VBA et récupère le prix dans la devise et langage du vendeur. Pour un item vendu par un russe, la devise est avec des caractères cyrilliques traduits en caractères HTML.

    Je cherche un paramètre à placer dans l'url pour récupérer les prix directement en EUROS (paramètre du genre currency=3 mais celui-ci ne fonctionne pas...)

    L'avantage serait :
    - Pas de conversion de devise
    - Pas de mise à jour de taux de change

    Merci pour votre aide

  4. #4
    Membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Janvier 2012
    Messages
    128
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Janvier 2012
    Messages : 128
    Points : 67
    Points
    67
    Par défaut
    Salut !
    Il y a un moyen bien plus simple (en tout cas en PHP) en demandant directement à Steam.
    Il faut juste que tu connaisses le nom exact de l'item sur le market, ensuite tu peux utiliser ça : (exemple)
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    http://steamcommunity.com/market/priceoverview/?country=US&currency=3&appid=730&market_hash_name=StatTrak%E2%84%A2%20P250%20%7C%20Steel%20Disruption%20%28Factory%20New%29
    Ce qui te donne :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    {
      "success": true,
      "lowest_price": "1,43€ ",
      "volume": "562",
      "median_price": "1,60€ "
    }
    De rien

  5. #5
    Futur Membre du Club
    Inscrit en
    Décembre 2011
    Messages
    18
    Détails du profil
    Informations forums :
    Inscription : Décembre 2011
    Messages : 18
    Points : 8
    Points
    8
    Par défaut
    Magique !

    MERCI

  6. #6
    Nouveau Candidat au Club
    Homme Profil pro
    Curieux
    Inscrit en
    Avril 2015
    Messages
    1
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 26
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Curieux

    Informations forums :
    Inscription : Avril 2015
    Messages : 1
    Points : 1
    Points
    1
    Par défaut
    Bonjour, je sais que je relance le sujet mais ici je suis sur que l'on peu m'aider. Alors voila j'utilise le lien que tu as donné plus haut pour obtenir les infos, et en l’occurrence c'est le prix le plus bas qui m'intéresse, mais vue que je suis un néophyte en PHP je ne sais comment récupérer un morceau de texte d'une autre page web, pourriez vous m'éclairez ?

Discussions similaires

  1. Réponses: 1
    Dernier message: 25/08/2013, 09h27
  2. [SAX] Utilisation de LexicalHandler pour gérer les données CDATA en base 64
    Par tdeco dans le forum Format d'échange (XML, JSON...)
    Réponses: 1
    Dernier message: 23/08/2007, 21h58
  3. Utiliser une variable pour stocker les noms d'objets.
    Par en_gel_ho dans le forum Access
    Réponses: 4
    Dernier message: 03/01/2007, 16h44
  4. utiliser une classe pour gerer les signaux
    Par TrueBeliever dans le forum Qt
    Réponses: 2
    Dernier message: 21/12/2006, 17h57
  5. procedure stocké pour avoir les droits utilisateur
    Par Babylonne dans le forum MS SQL Server
    Réponses: 1
    Dernier message: 27/06/2006, 14h09

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