我使用此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 cratenorender=1
是不得到htmlcount=100
-每页结果- 订购
sort_column=name&sort_dir=asc
currency=3
选择欧元作为货币<——不工作start=100
start at result 100
但是,我改变货币,它不会改变sell_price
和sell_price_text
作为响应。它仍然打印:
(...) "sell_listings":68,"sell_price":963,"sell_price_text":"9,63€" (...)
注意€。
这里有打字错误吗?currency
甚至解析蒸汽部分?
非常清楚。我希望得到与蒸汽市场上相同的价格(欧元)(如果您有欧元的网站)。
编辑:目前看来不太可能。如果可能的话,请发布一个新的答案!
获取Steam Market (API)结果
不幸的是,这是不可能的。你所指的参数,即currency
只允许调用特定的子页面,例如:
https://steamcommunity.com/market/priceoverview/?appid=730¤cy=3&market_hash_name=Fracture%20Case
(查找骨折病例的价格)-返回:
{"success"真的,"lowest_price":"0,39€","volume":"84984","median_price":"0,39€"}
如果您将currency
更改为等于1
(为美元):
{"success"真的,"lowest_price":"0.49美元","volume":"84847","median_price":"0.48美元"}
您可以清楚地看到,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/?
查找价格,尽管这个选项会产生相当不准确的结果(priceoverview
只显示有限的细节)。
稍微偏离主题:您可以在本地转换价格(使用其他api或具有特定因子的静态货币对)。虽然正如你特别提到的,你想通过官方价格来计算("手动"计算)。以差异结束(与steam相关),这不是一个有效的选项。
我也有同样的问题,我唯一的解决办法是在请求中包含我的cookie,这样steam就知道我的登录并自动以我的默认货币发送价格。
"Cookie":
"steamMachineAuthXXXXXXXXXXXXXXXXX=XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX; "
"Steam_Language=english; "
"steamLoginSecure=XXXXXXXXXXXXXXXXX||XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX; "
注意:我将实际值改为"X"出于安全考虑。