Steam API怎么获取游戏近期评价的好评率趋势?

Steam API怎么获取游戏近期评价的好评率趋势?🎮 小阿giao带你一探究竟!
大家好,我是你们的游戏博主小阿giao!😎 今天我们要解决一个很多玩家、开发者、自媒体小伙伴都头疼的问题:Steam API怎么获取游戏近期评价的好评率趋势?
别慌,这个听起来像“黑魔法”的操作,其实比喝奶茶还简单!我保证你看完这篇攻略,直接“原地起飞”,能自己写个监控脚本,天天盯着心爱游戏的口碑风向。🌪️
📌 摘要:先给你一颗定心丸
想要拿到Steam游戏近期评价(最近30天)的好评率,我们不需要去Steam网页爬花里胡哨的HTML,只需要调用Steam官方提供的 Storefront API 中的 `appreviews` 接口,设置 `filter=recent`,就能一键拿到“好评数/差评数/好评率”汇总版数据!
而想要看趋势,就需要我们做一个“有耐心的小蜜蜂”🐝——定期(比如每天)调一次接口,把数据存下来,最后用Excel或者Python画成折线图,完美!
---
🔍 现状:先从“现在的好评率”说起
1️⃣ 什么是“近期评价好评率”?
打开Steam游戏商店页,你会看到两个评价汇总:
- 所有评测:游戏上架以来的总盘子
- 最近评测:过去30天内玩家给出的评价汇总
我们要的“好评率趋势”,就是最近评测的好评百分比随着时间变化的曲线。这个数字能非常直观地反映游戏最近的口碑:是更新炸了?还是开发商努力挽回形象?
> 🌰 比如某游戏最近更新了一波“反向优化”,玩家愤怒差评,好评率直接从90%跌到40%,这比看热搜还刺激!
2️⃣ 关键API接口:`appreviews`
官方接口地址如下:
```
GET https://store.steampowered.com/appreviews/{appid}?json=1&language=all&purchase_type=all&filter=recent&num_per_page=0
```
来,我帮你把这串“咒语”拆解一下:
| 参数 | 作用 | 推荐值 |
|------|------|--------|
| `{appid}` | Steam游戏的唯一ID | 换成你目标的游戏ID,比如《艾尔登法环》是1245620 |
| `json=1` | 返回JSON格式数据(不然会返回HTML) | 必须为 `1` |
| `language=all` | 全语言评价,避免语言过滤导致样本偏差 | `all` |
| `purchase_type=all` | 包含正式购买、免费获取、CDKey等各种类型 | `all` |
| `filter=recent` | 核心参数,表示取过去30天的“最近评测” | `recent` |
| `num_per_page=0` | 不返回单条评论列表,只要汇总统计 | `0`(省流量神器!) |
3️⃣ 返回的JSON长什么样?
等接口返回后,你会看到类似下面这个结构(简化版):
```json
{
"success": 1,
"query_summary": {
"num_reviews": 12345,
"total_reviews": 12345,
"total_positive": 10000,
"total_negative": 2345,
"total_positive_votes": 8000,
"filter": "recent",
"score_percent": 81
}
}
```
你需要的核心字段一目了然:
- `total_reviews`:近期总评测数
- `total_positive`:近期好评数
- `total_negative`:近期差评数
- `score_percent`:好评率(四舍五入后的百分比整数)
> 💡 注意:`score_percent` 有可能是整数,如果你需要更精细的趋势,可以用 `total_positive / total_reviews * 100` 自己算小数,比如 `81.3%`。
4️⃣ 实战Python代码:三行拿数据
这里我们用Python的 `requests` 库演示,代码几乎没有技术门槛:
```python
import requests
appid = 1245620
换成你想查询的游戏AppID
url = f"https://store.steampowered.com/appreviews/{appid}?json=1&language=all&purchase_type=all&filter=recent&num_per_page=0"
resp = requests.get(url, headers={"User-Agent": "Mozilla/5.0"})
data = resp.json()["query_summary"]
print(f"近期评测总数:{data['total_reviews']}")
print(f"好评数:{data['total_positive']}")
print(f"差评数:{data['total_negative']}")
print(f"好评率:{data['score_percent']}%")
```
跑一下,当前好评率就到手了!🎉
> ⚠️ 小提示:因为该接口无需API Key,但是Steam偶尔会限制频繁访问,建议加 `User-Agent`,并且每次请求间隔个几秒,做一个“绅士机器人”。
---
📈 如何把“单次”变成“趋势”?
光有这一点数据肯定不够,我们需要“连续剧”。这里有三种方案,任你挑:
方案A:数据库+定时任务(推荐)
这是最正统、可持续的方案。
1. 建一个小表,字段很简单:`date`、`appid`、`score_percent`、`total_reviews`
2. 每天固定时间(比如早上8点)用系统定时任务(Windows任务计划 / Linux crontab)运行一次脚本
3. 把当天的好评率插入表里
4. 攒够一个周期后,用Excel / `matplotlib` / `pyecharts` 画折线图
示例每日保存SQLite的Python片段:
```python
import sqlite3, datetime, requests
conn = sqlite3.connect("steam_trend.db")
c = conn.cursor()
c.execute("""CREATE TABLE IF NOT EXISTS trend (
date TEXT PRIMARY KEY,
appid INTEGER,
score_percent REAL,
total_reviews INTEGER
)""")
today = datetime.date.today().isoformat()
appid = 1245620
... 上面获取data的代码 ...
c.execute("INSERT OR REPLACE INTO trend VALUES (?,?,?,?)",
(today, appid, data["score_percent"], data["total_reviews"]))
conn.commit()
conn.close()
```
每天存一行,一个月后就能画出那条“好运率”曲线,看游戏口碑如何翻身或翻车。📉
方案B:一次性拉取所有评价,自己按日期窗口统计
如果你想要历史某段时间(比如上个月)的好评率,但过去没存数据,怎么办?
这时候可以调用 `filter=all` 把评测全部拉下来,再根据每条评测的 `timestamp_created`(创建时间)筛选出符合时间窗口的评测,自己计算好评率。
参数大致为:
```
https://store.steampowered.com/appreviews/{appid}?json=1&num_per_page=100&filter=all&language=all&purchase_type=all&cursor=*
```
你需要在循环中解析代码,然后按 `timestamp_created` 过滤。但是!这里有小阿giao的忠告⚠️:
- 这个方式请求量巨大,可能踩到Steam的限速
- 某些游戏评测数量几十万条,你要翻N页,费时费力,还可能被反爬
- 更靠谱的做法是直接看SteamDB这类第三方网站的历史趋势图
所以方案B适合“急用”,不适合常态化监控。
方案C:写一个“趋势工具人”Bot
这是方案A的Plus版本——不仅存数据,还每天把最近30天的好评率发到你的微信/钉钉/飞书/Discord。比如:
> 🤖 今日《XX游戏》最近30天好评率:72%(昨日74%),下跌2%!
只需要在之前的脚本里加一个通知API,瞬间变成“口碑守望者”。这才是游戏博主/发行商运营的神器!
---
🔮 结论与展望
好了,我们来总结一下今天的高能攻略:
| 核心要点 | 说明 |
|---------|------|
| 接口地址 | `https://store.steampowered.com/appreviews/{appid}` |
| 近期评价参数 | `filter=recent` |
| 关键返回字段 | `query_summary` 中的 `score_percent` / `total_positive` / `total_negative` |
| 获取趋势的方法 | 每天定期调用接口,把好评率存入数据库,然后绘图分析 |
| 注意事项 | 无需API Key,请求别太频繁;历史数据要提前攒,否则只能靠all评价筛日期,成本较高 |
展望一下未来:如果你把这篇攻略学透了,不仅能自己监控游戏口碑,还能做成一个“Steam游戏口碑警报器”。当某游戏好评率暴跌时,第一时间发视频——“谁在逼我退坑?”,流量直接起飞!🚀
当然,如果你只是想找乐子,也可以每天看看自己的游戏在Steam上被多少人骂……哦不,是被多少人爱着。😆
好了,今天的小阿giao攻略课堂就到这里!如果你喜欢这篇内容,记得点赞、收藏、转发!在评论区告诉我你想看哪些游戏的近期好评率,我来帮你现场查!我们下次见~拜拜!👋
---
附:常用游戏AppID速查
| 游戏 | AppID |
|------|-------|
| 艾尔登法环 | 1245620 |
| 赛博朋克2077 | 1091500 |
| 博德之门3 | 1086940 |
| 永劫无间 | 1203220 |
| CS2 | 730 |
> 大家可以在Steam商店页面的URL里看到 `app/` 后面的数字,那就是AppID啦!
