Steam API 获取特定游戏的历史玩家数量

Posted

技术标签:

【中文标题】Steam API 获取特定游戏的历史玩家数量【英文标题】:Steam API get historical player count of specific game 【发布时间】:2018-02-09 13:11:30 【问题描述】:

我正在使用带有 python 的 steam api 来获取玩 Dota 2 等游戏的玩家数量。

import requests
import numpy as np
import pandas as pd

def main():

    header = "Client-ID": "F07D7ED5C43A695B3EBB01C28B6A18E5"

    appId = 570
    game_players_url = 'https://api.steampowered.com/ISteamUserStats/GetNumberOfCurrentPlayers/v1/?format=json&appid=' + appId
    game_players = requests.get(game_players_url, headers=header)

    print("Game name: Dota 2" + ", Player count: " + str(game_players.json()['response']['player_count']))


if __name__ == '__main__':
    main()

这可以让我获得特定游戏的正确当前玩家数量(在本例中为 dota 2),但我需要的是有关该特定游戏玩家数量的历史数据。 这应该是可能的,因为this 网站有我想要的信息,而且他们可能从 Steam API 获取数据。

任何帮助将不胜感激!

谢谢

【问题讨论】:

他们正在收集数据并将其持久化,因此他们拥有历史数据。为了让您拥有历史数据,您也应该将其持久化。 我想过这个问题,但我觉得奇怪的是他们在 Steam 上拥有所有游戏的所有数据,这么多年前。这就是为什么我认为 steam api 可能会提供所有这些数据。 考虑阅读github.com/SteamRE/SteamKit,Steam 可能没有记录一些晦涩的 api 方法。但是steemdb已经很老了。尽管域名注册日期为 2013 年,但它们的数据确实可以追溯到 2011 年。 我会在代码中隐藏任何敏感信息,例如 Client-Id。 【参考方案1】:

ilhicas 在 cmets 中正确指出:SteamDB 拥有这些历史数据,因为他们多年来每天都在收集和保存这些数据。 SteamDB 于 2010 年左右正式发布,这就是他们拥有如此多数据的原因。

我也遇到过类似的问题,看了一圈,得出了这样的结论:

没有针对特定游戏历史玩家数量的 Steam Web API 方法。

如果你不相信我的话:

Valve 的官方 Web API 参考:https://partner.steamgames.com/doc/webapi_overview 来自 SteamDB 创建者的非官方参考:https://lab.xpaw.me/steam_api_documentation.html

【讨论】:

以上是关于Steam API 获取特定游戏的历史玩家数量的主要内容,如果未能解决你的问题,请参考以下文章

Steam平台游戏总数已经突破五万!

steam如何获取API密匙

Steam历史热度最高游戏排行,帕斯卡契约上架steam,女神异闻录5S在steam解锁,尼尔机械纪元销量破550万份

Steam好评仅57%,《三国群英传8》到底哪里得罪了玩家?

Python乘法游戏。我的脚本需要有任意数量的玩家,每个玩家都必须轮流回答乘法问题

经典PC大作Steam直降200元:罕见史低!