kostenloser Webspace werbefrei: lima-city


Steam Marktpreise auslesen.

lima-cityForumProgrammiersprachenPHP, MySQL & .htaccess

  1. Autor dieses Themas

    h***********r

    Hallo,
    ich hätte mal wieder eine Frage evtl kennt sich da jemand aus.
    Ich würde gern vom Steam Community Markt (https://steamcommunity.com/market/?l=german) von einem beliebigen Produkt mir den Preis automatisch hohlen lassen wollen um ihn anzuzeigen bzw sonstige lustige Dinge mit ihm zu machen. Das Problem welches ich jetzt eigentlich habe ist, wie komme ich am besten da dran?
  2. Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!

    lima-city: Gratis werbefreier Webspace für deine eigene Homepage

  3. http://store.steampowered.com/api/appdetails?appids={Steam-ID} ;)
  4. Autor dieses Themas

    h***********r

    Leider ist es nicht ganz so einfach. Die Steam API gibt mir zwar alles was Trading, Games oder Nutzerdaten angeht allerdings hört es bei Marktpreisen auf. Allerdings kommt man da auch irgendwie dran.
    Mit
    http://steamcommunity.com/market/search/render/?query=Artikel&start=0&count=10"

    z.bsp
    http://steamcommunity.com/market/search/render/?query=/listings/730/Krakow%202017%20Challengers%20Autograph%20Capsule&start=0&count=10"

    kommt man an eine Textform aller Daten. Diese würde ich recht einfach mit
    $artikel = "/listings/730/Krakow%202017%20Challengers%20Autograph%20Capsule";
    $url = "http://steamcommunity.com/market/search/render/?query=$artikel&start=0&count=10"; 
    $quelltext = file_get_contents($url);

    in eine Variable schreiben.
    Innerhalb dieser Zeichenkette befindet sich
    <span class=\"sale_price\">$0.61 USD<\/span>
    was allgemein in etwa so aussehen sollte:
    <span class=\"sale_price\">**.* *<\/span>

    Diesen Teil würde ich gerne herausfiltern aus dem gesamten Zeichen. Das würde ich so machen:
    $_url = "http://steamcommunity.com/market/search/render/?query=/listings/730/Krakow%202017%20Challengers%20Autograph%20Capsule&start=0&count=10"; 
    $quelltext = file_get_contents($_url);
    $folge = "<span class=\"sale_price\">";
    $pos = strpos($quelltext, $folge);
    $preiz = substr($quelltext, $pos);
    echo $preiz;

    Das sollte eigentlich den Preis als die ersten paar Zeichen ausgeben, allerdings geht das nicht so richtig.

    Beitrag zuletzt geändert: 27.7.2017 22:20:32 von horstexplorer
  5. RegEx oder ein echter Parser.
  6. Autor dieses Themas

    h***********r

    fatfox schrieb:
    RegEx oder ein echter Parser.

    ? Verstehe ich jetzt leider nicht ganz.
  7. Ja entweder verwendest du eine einfache Gleichheitsprüfung z.B. mit einem regulären Ausdruck oder du verwendest einen Parser, dein Beispiel schaut nach HTML aus, wenn du das Dokument parst bekommst du die Struktur der Seite als Daten- / Objektstruktur, die lässt sich dann z.B. nach Element-Typen durchsuchen usw.
  8. Autor dieses Themas

    h***********r

    Ah ok, wie müsste ich das machen?
  9. horstexplorer schrieb:
    Leider ist es nicht ganz so einfach. Die Steam API gibt mir zwar alles was Trading, Games oder Nutzerdaten angeht allerdings hört es bei Marktpreisen auf.

    Hast du dir den Link überhaupt angeschaut? Bei der Rückgabe ist auch ein Objekt "price_overview" drin was dir eben den Preis, Währung, Rabatt zurück gibt.
    Siehe hier z.B. für das Spiel "RAGE".
  10. Autor dieses Themas

    h***********r

    Naja es geht mir wie ich schon sagte im dir Preise des Community Marktes also für ingame Artikel und nicht für Games. Aber letztendlich ist die Rückgabe des Preise in der Datenmenge in etwa die selbe. Stellt sich immer noch die Frage wie bekomme ich sie raus.
  11. Ah, mein Fehler. Falsch verstanden.
    Den "einen Preis" gibt es ja da nicht.
    Aber Durchschnitt/Minimum kriegste über die API:
    https://steamcommunity.com/market/priceoverview/?currency=3&appid=730&market_hash_name=Spectrum%20Case%20Key

    currency: 1 -> USD, 3 -> EUR
    appid: Steam-ID
    market_hash_name: Name vom Artikel (findest du easy im Quelltext)

    In dem Fall ist es der Artikel: https://steamcommunity.com/market/listings/730/Spectrum%20Case%20Key
  12. Autor dieses Themas

    h***********r

    Ah okay das ist ja noch viel cooler :) wie bekomme ich da aber die Werte für volume und median_price raus mit PhP das nur die zugehörige Zahl in einer Variable steht?
  13. Json mit den JSON-Funktionen von deiner verwendeten Programmiersprache auslesen und vom Preis dann halt das letzte Zeichen abtrennen oder das Euro-Zeichen gegen nen leeren String ersetzen.
  14. Autor dieses Themas

    h***********r

    Also müsste es theoretisch so gehen (habe gerade keinen PC zum überprüfen zur hand)
    //Die codeteile bis zu $url
    $jsonfile = file_get_contents($url); 
    $jsonarray = json_decode($jsonfile);
    $menge = $jsonarray[0]->volume; 
    $preis =  $jsonarray[0]->median_price;

    Und danach halt ggf die Zeichen a-z A-Z und Sonderzeichen entfernen.
  15. Ähnlich. Die Daten hast du dann direkt als Objekt. Die Menge also z.B. über $jsonarray->volume.
  16. Autor dieses Themas

    h***********r

    Ah vielen Dank :) ich teste das heute Abend mal aus und merke mir eine positive Bewertung :)
    //
    Funktioniert super :)
    jetzt würde ich die Information gerne noch in eine Tabelle schreiben, aber da scheine ich noch etwas falsch zu machen.
    <!DOCTYPE html>
    <table border="1" width="100%" cellpadding="3" cellspacing="1">
    <tbody>
    <tr>
    <td>Name</td>
    <td>Bild</td>
    <td>Stückzahl</td>
    <td>Preis</td>
    </tr>
    //AKREDLINE
    
    <?php
    $name = "AK-Redline | FT";
    $img = "http://community.edgecast.steamstatic.com/economy/image/-9a81dlWLwJ2UUGcVs_nsVtzdOEdtWwKGZZLQHTxDZ7I56KU0Zwwo4NUX4oFJZEHLbXH5ApeO4YmlhxYQknCRvCo04DEVlxkKgpot7HxfDhjxszJemkV09-5lpKKqPrxN7LEm1Rd6dd2j6eQ9N2t2wK3-ENsZ23wcIKRdQE2NwyD_FK_kLq9gJDu7p_KyyRr7nNw-z-DyIFJbNUz/360fx360f";
    $market_hash_name = "AK-47%20%7C%20Redline%20%28Field-Tested%29";
    $url = "https://steamcommunity.com/market/priceoverview/?currency=3&appid=730&market_hash_name=$market_hash_name"; 
    $jsonfile = file_get_contents($url); 
    $jsonarray = json_decode($jsonfile);
    $menge = $jsonarray->volume; 
    $preiseuro =  $jsonarray->median_price;
    $url2 = "https://steamcommunity.com/market/priceoverview/?currency=1&appid=730&market_hash_name=$market_hash_name";
    $jsonfile2 = file_get_contents($url2); 
    $jsonarray2 = json_decode($jsonfile2);
    $preisusd =  $jsonarray->median_price;
    <tr>
    <td>$name</td>
    <td><img src="$img" alt="$name" height="100px" width="100px"></td>
    <td>$menge vorhanden</td>
    <td>$preiseuro / $preisusd</td>
    </tr>
    ?>


    Beitrag zuletzt geändert: 28.7.2017 20:55:07 von horstexplorer
  17. Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!

    lima-city: Gratis werbefreier Webspace für deine eigene Homepage

Dir gefällt dieses Thema?

Über lima-city

Login zum Webhosting ohne Werbung!