我知道有一个 Steam API 允许我使用来自 Steam 社区的数据。
我的问题是,有谁知道是否有 Steam 市场 API?
例如,我想获取 Steam 市场中某个物品的当前价格。
我已经用谷歌搜索了,但还没有找到任何东西。
我很高兴得到你的帮助。
我找不到任何文档,但我使用:
http://steamcommunity.com/market/priceoverview/?appid=730¤cy=3&market_hash_name=StatTrak%E2%84%A2 M4A1-S | Hyper Beast (Minimal Wear)
返回 JSON。 在撰写本文时,它返回:
{"success":true,"lowest_price":"261,35€ ","volume":"11","median_price":"269,52€ "}
您可以更改货币。 1 是美元,3 是欧元,但可能还有其他。
更好的搜索 api,可以为您提供游戏的所有结果,例如使用 pubg,它只有 272 个项目,如果您的游戏有更多,请尝试更改最后的计数参数
https://steamcommunity.com/market/search/render/?search_descriptions=0&sort_column=default&sort_dir=desc&appid=578080&norender=1&count=500
使用
currency
参数,您可以更改 Steam 返回的本地货币。
¤cy=1 # USD
¤cy=2 # GBP
¤cy=3 # EUR
¤cy=4 # CHF
...
以下是货币参数的当前整数值(根据 https://partner.steamgames.com/doc/store/pricing/currencies)。
1 - 美元/美元
2 - GBP / 英镑
3 - 欧元/欧盟欧元
4 - CHF / 瑞士法郎
5 - 卢布/俄罗斯卢布
6 - PLN / 波兰兹罗提
7 - BRL / 巴西雷亚尔
8 - 日元 / 日元
9 - NOK / 挪威克朗
10 - IDR / 印尼卢比
11 - MYR / 马来西亚林吉特
12 - PHP / 菲律宾比索
13 - SGD / 新加坡元
14 - THB / 泰铢
15 - VND / 越南盾
16 - KRW / 韩元
17 - TRY / 土耳其里拉
18 - UAH / 乌克兰格里夫纳
19 - MXN / 墨西哥比索
20 - CAD / 加元
21 - AUD / 澳元
22 - NZD / 新西兰元
23 - CNY / 中国人民币(元)
24 - INR / 印度卢比
25 - CLP / 智利比索
26 - PEN / 秘鲁索尔
27 - COP / 哥伦比亚比索
28 - ZAR / 南非兰特
29 - HKD / 港币
30 - TWD / 新台币
31 - SAR / 沙特里亚尔
32 - AED / 阿联酋迪拉姆
33(已停产)- SEK / 瑞典克朗
34 - ARS / 阿根廷比索
35 - ILS / 以色列新谢克尔
36(已停产)-BYN / 白俄罗斯卢布
37 - KZT / 哈萨克斯坦坚戈
38 - KWD / 科威特第纳尔
39 - QAR / 卡塔尔里亚尔
40 - CRC / 哥斯达黎加科朗
41 - UYU / 乌拉圭比索
42(已停产)- BGN / 保加利亚列弗
43(已停产)- HRK / 克罗地亚库纳
44(已停产)-CZK / 捷克克朗
45(已停产)- DKK / 丹麦克朗
46(已停产)- HUF / 匈牙利福林
47(已停产)- RON / 罗马尼亚列伊
这是表示相同事物的 Python 字典(省略了已停止使用的值)。
{
"USD": 1, # United States Dollar
"GBP": 2, # United Kingdom Pound
"EUR": 3, # European Union Euro
"CHF": 4, # Swiss Francs
"RUB": 5, # Russian Rouble
"PLN": 6, # Polish Złoty
"BRL": 7, # Brazilian Reals
"JPY": 8, # Japanese Yen
"NOK": 9, # Norwegian Krone
"IDR": 10, # Indonesian Rupiah
"MYR": 11, # Malaysian Ringgit
"PHP": 12, # Philippine Peso
"SGD": 13, # Singapore Dollar
"THB": 14, # Thai Baht
"VND": 15, # Vietnamese Dong
"KRW": 16, # South Korean Won
"TRY": 17, # Turkish Lira
"UAH": 18, # Ukrainian Hryvnia
"MXN": 19, # Mexican Peso
"CAD": 20, # Canadian Dollars
"AUD": 21, # Australian Dollars
"NZD": 22, # New Zealand Dollar
"CNY": 23, # Chinese Renminbi (yuan)
"INR": 24, # Indian Rupee
"CLP": 25, # Chilean Peso
"PEN": 26, # Peruvian Sol
"COP": 27, # Colombian Peso
"ZAR": 28, # South African Rand
"HKD": 29, # Hong Kong Dollar
"TWD": 30, # New Taiwan Dollar
"SAR": 31, # Saudi Riyal
"AED": 32, # United Arab Emirates Dirham
"ARS": 34, # Argentine Peso
"ILS": 35, # Israeli New Shekel
"KZT": 37, # Kazakhstani Tenge
"KWD": 38, # Kuwaiti Dinar
"QAR": 39, # Qatari Riyal
"CRC": 40, # Costa Rican Colón
"UYU": 41 # Uruguayan Peso
}
补充一下其他人所说的,如果您尝试在一分钟内从服务器请求 20 个项目,就会发生 JSON 站点的临时禁令。如果您要创建脚本来请求这些链接,请在每个脚本之间添加三秒的延迟。 此外,禁令仅持续服务器端剩余的一分钟(可能不是 60 秒)。
您可以使用SteamApis.com获取Steam市场价格和物品信息。数据以 JSON 格式返回。这项服务不是免费的,但也不是那么贵。
可在此处查看文档。 它包含有关哪些端点可用以及返回哪些数据的详细信息。
Script-scraper 将搜索结果从 https://steamcommunity.com/market/search?q= 映射到对象数组
Array.from(document.querySelectorAll('a.market_listing_row_link')).map(item => {
const itemInfo = item.children[0]
return {
isStatTrek: itemInfo.getAttribute('data-hash-name').startsWith('StatTrak™'),
condition: itemInfo.getAttribute('data-hash-name').match(/.*\((.*)\)/)[1],
priceUSD: Number(itemInfo.querySelector('.normal_price[data-price]').getAttribute('data-price')/100)
}
})
可配合iframe和“武器|皮肤名称(状态)”搜索模板使用