以欧元获取 Steam 市场 (API) 结果

Get Steam Market (API) results in euro

我使用这个 URL 在 CS:GO 个容器中一次获得 100 个结果。我用 {currency} 代替 3{start} 代替 100 的倍数,我的问题是 currency=3 似乎不是欧元,它大约有 17% 的折扣(我必须将接收到的值乘以 0.83 才能得到很好的结果):

market_url = ("https://steamcommunity.com/market/search/render/?"
    "category_730_Type%5B%5D=tag_CSGO_Type_WeaponCase"
    "&norender=1"
    "&count=100"
    "&sort_column=name"
    "&sort_dir=asc"
    "&currency={currency}"
    "&start={start}")

据我了解:

但是,我更改了货币,它没有更改 sell_price 也没有更改 sell_price_text 作为响应。它仍然打印:

(...) "sell_listings":68,"sell_price":963,"sell_price_text":"9,63€" (...) 注意 €.

我那里有错字吗? currency 甚至在 Steam 部分进行了解析吗?

要crystal清楚。我想获得与 steam market 上显示的相同价格(以欧元为单位)(如果您的网站以欧元为单位)。

编辑: 目前看来不可能。 如果可行,请post一个新的答案!

Get Steam Market (API) results in euro

很遗憾,这是不可能的。您所指的参数,即 currency 仅允许调用特定的子页面,例如:

https://steamcommunity.com/market/priceoverview/?appid=730&currency=3&market_hash_name=Fracture%20Case

(求骨折盒价格) - returns:

{"success":true,"lowest_price":"0,39€","volume":"84,984","median_price":"0,39€"}

如果您将 currency 更改为等于 1(美元):

{"success":true,"lowest_price":"[=24=].49","volume":"84,847","median_price":"[=24=].48"}

如您所见,currencyhttps://steamcommunity.com/market/priceoverview/ 完美搭配。


虽然据我所知,https://steamcommunity.com/market/search/render/? 没有将 currency 参数作为输入,即货币最终将呈现为美元(或 currency=1 ).

您可以通过 https://steamcommunity.com/market/search/render/? 抓取并通过 https://steamcommunity.com/market/priceoverview/? 查找价格,尽管此选项会产生非常不准确的结果(priceoverview 仅显示有限数量的详情)。


稍微跑题:您可以在本地转换价格(使用其他 API 或针对具有特定因素的静态货币对)。尽管正如您特别提到的那样,您想通过官方价格进行操作(“手动”计算最终会出现差异,与 Steam 相关),但这不是一个有效的选择。

我遇到了完全相同的问题,我唯一的解决办法是在请求中包含我的 cookie,这样 steam 就知道我的登录信息并自动以我的默认货币发送价格。

"Cookie":  
    "steamMachineAuthXXXXXXXXXXXXXXXXX=XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX; "
    "Steam_Language=english; "
    "steamLoginSecure=XXXXXXXXXXXXXXXXX||XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX; "

注意:出于安全原因,我将实际值更改为“X”。