TL;DR
- Steam Web API 方法、商店接口和商店 HTML 具有不同的合同和访问条件。
- 本项目结合了一个有文档的新闻 API 示例和一个可运行的授权数据价格跟踪导入器。
- 提供的游戏价格和应用 ID 是合成的固定值。它们不是观察到的 Steam 报价。
- 仅在同一应用 ID、地区、货币、包类型和观察上下文内比较价格。
- 缺失、不可用、免费和付费是不同的状态;永远不要将缺失的价格视为零。
What You'll Build: A Steam Game Data Scraper
您将构建一个小型游戏数据工作流,包含两条路径:通过已文档的 Steam Web API 方法获取新闻,并将允许的价格数据集规范化为 CSV、JSON 和 SQLite。
价格跟踪器在本地使用合成固定值运行,因此完整的解析和存储路径可以在不抓取实时商店的情况下重现。要获取生产价格,请连接一个其访问和数据使用条款覆盖您的工作流的来源。这个区分很重要,因为可达的商店 URL 并不自动是受支持的公共定价 API。
Steam Data Sources: Store API, Steam Web API, and HTML
Steam 数据收集始于选择实际上提供所需字段并允许预期使用的接口。
Choosing the Right Steam Data Source
| Source | Suitable purpose | Important limit |
|---|---|---|
| Documented Steam Web API | 特定的文档方法,如应用新闻 | 并非每个商店字段或价格都是公开的 |
| Approved publisher/partner interface | 开发者的权利内的数据 | 凭证和应用访问可能受到限制 |
| Licensed price dataset | 根据合同的地区报价历史 | 覆盖和重新分发依赖于许可证 |
| Storefront-facing JSON | 潜在网站实现细节 | 可达性并不保证稳定性或权限 |
| Store HTML | 批准的页面级研究 | 访问规则、地区状态、标记和年龄门 |
Valve的 Web API 概述 描述了文档 API 的使用。常被引用的商店 appdetails 接口不应被视为具有相同文档保证的一般定价 API。
Understanding Steam App IDs and Regional Pricing
一个应用 ID 用于识别一个应用,这可以是游戏、DLC、演示或其他应用类型。报价还可以涉及包或束,因此应用级标签并不是完整的商业身份。
商店应用 ID、报价类型、地区、货币、原始和当前金额、价格状态、来源和观察时间。保持整数源金额及明确的单位约定。请勿在未检查源的单位定义之前将每种货币除以 100。
Prerequisites and Python Environment Setup
提供的跟踪器使用 Python 的标准库。创建一个包含 steam_tracker.py 和 steam_prices_fixture.json 的目录,然后使用虚拟环境。





