问题描述
我使用此 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"
"¤cy={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_price
或 sell_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¤cy=3&market_hash_name=Fracture%20Case
更改为等于 currency
(美元):
{"success":true,"lowest_price":"$0.49",847","median_price":"$0.48"}
如您所见,1
与 currency
完美配合。
尽管据我所知,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 相关)进行操作,但这不是一个有效的选择。