You need to enable JavaScript to run this app.
最新活动
大模型
产品
解决方案
定价
生态与合作
支持与服务
开发者
了解我们

如何获取其他Steam用户的愿望单信息?(寻求非无头浏览器的替代方案)

如何获取其他Steam用户的愿望单信息?(寻求非无头浏览器的替代方案)

你遇到的这个情况确实是Steam在2024年11月的更新导致的——之前那两个直接拉取愿望单JSON数据的接口已经被废弃:

https://store.steampowered.com/wishlist/profiles/${steamID}/wishlistdata/
https://store.steampowered.com/wishlist/id/${steamID}/wishlistdata

现在访问这些链接只会跳转到Steam商店主页,没法再拿到结构化的愿望单数据了。

这里给你几个不需要用无头浏览器的替代方案,都是比较靠谱的:

  • 用Steam官方Web API接口(最稳定的方式)
    Steam提供了官方的IPlayerService/GetWishlistItems接口来获取愿望单数据,这是官方支持的方式,不用担心突然失效。不过使用前需要注意两点:

    1. 你得先去Steam开发者页面免费申请一个Web API密钥
    2. 如果目标用户的愿望单是私有的,你需要获得用户的授权才能访问;如果是公开愿望单,直接调用就行
      调用的时候把你的API密钥和目标用户的Steam ID填进去就行,示例如下:
    https://api.steampowered.com/IPlayerService/GetWishlistItems/v1/?key=你的API密钥&steamid=目标SteamID
    

    返回的是结构化的JSON数据,里面包含游戏ID、名称、添加时间这些核心信息,处理起来非常方便。

  • 解析公开愿望单的静态HTML(无需API密钥)
    如果不想折腾API密钥,可以直接请求用户的公开愿望单页面(比如https://store.steampowered.com/wishlist/id/${steamID}/),然后用HTML解析工具(比如Python的BeautifulSoup、Node.js的cheerio)提取里面的愿望单数据。不过要注意两个点:

    1. Steam有反爬机制,别太频繁地发送请求,不然容易被封IP
    2. 商店页面的结构可能会随Steam更新而变化,后续可能需要调整解析逻辑
      这种方式适合小规模的需求,只要愿望单是公开的就能用,不需要额外的授权。
  • 利用愿望单的RSS订阅(轻量方案)
    大部分公开的Steam愿望单都支持RSS订阅,你可以访问https://store.steampowered.com/wishlist/id/${steamID}/rss/获取RSS格式的愿望单数据。RSS是标准的XML格式,几乎所有编程语言都有对应的解析库,处理起来很简单。不过这个方式只能拿到基本信息(比如游戏标题、链接、添加时间),如果需要价格、折扣这类更详细的数据,还是得结合前两种方法。

最后提醒一下,不管用哪种方法,都要遵守Steam的服务条款,别做过度爬虫,避免触发反爬机制被封禁IP。

备注:内容来源于stack exchange,提问作者eliezra236

火山引擎 最新活动