如何获取其他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接口来获取愿望单数据,这是官方支持的方式,不用担心突然失效。不过使用前需要注意两点:- 你得先去Steam开发者页面免费申请一个Web API密钥
- 如果目标用户的愿望单是私有的,你需要获得用户的授权才能访问;如果是公开愿望单,直接调用就行
调用的时候把你的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)提取里面的愿望单数据。不过要注意两个点:- Steam有反爬机制,别太频繁地发送请求,不然容易被封IP
- 商店页面的结构可能会随Steam更新而变化,后续可能需要调整解析逻辑
这种方式适合小规模的需求,只要愿望单是公开的就能用,不需要额外的授权。
利用愿望单的RSS订阅(轻量方案)
大部分公开的Steam愿望单都支持RSS订阅,你可以访问https://store.steampowered.com/wishlist/id/${steamID}/rss/获取RSS格式的愿望单数据。RSS是标准的XML格式,几乎所有编程语言都有对应的解析库,处理起来很简单。不过这个方式只能拿到基本信息(比如游戏标题、链接、添加时间),如果需要价格、折扣这类更详细的数据,还是得结合前两种方法。
最后提醒一下,不管用哪种方法,都要遵守Steam的服务条款,别做过度爬虫,避免触发反爬机制被封禁IP。
备注:内容来源于stack exchange,提问作者eliezra236




