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

问题描述

我使用此 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}")

据我所知:

  • category_730_Type%5B%5D=tag_CSGO_Type_WeaponCase 是选择 CS:GO 箱子
  • norender=1 是不获取 html
  • count=100 - 每页结果
  • sort_column=name&sort_dir=asc 用于订购
  • currency=3 选择欧元作为货币
  • start=100 从结果 100 开始

但是,我更改了货币,它不会更改 sell_pricesell_price_text 作为响应。它仍然打印:

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

我有错别字吗? currency 甚至在 Steam 部分解析了吗?

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

编辑:目前似乎不可能。 如果可能,请发布新答案!

解决方法

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

不幸的是,这是不可能的。您所指的参数,即 O(n^4) 只允许调用特定的子页面,例如:

currency

(寻找骨折案例的价格) - 返回:

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

如果您将 https://steamcommunity.com/market/priceoverview/?appid=730&currency=3&market_hash_name=Fracture%20Case 更改为等于 currency(美元):

{"success":true,"lowest_price":"$0.49",847","median_price":"$0.48"}

如您所见,1currency 完美配合。


尽管据我所知,https://steamcommunity.com/market/priceoverview/ 不会将 https://steamcommunity.com/market/search/render/? 参数作为输入,即货币最终将呈现为美元(或 currency)。

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


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