Steam商店抓取:如何获取其他地区的捆绑包价格?
获取Steam捆绑包跨地区价格的可行方案
要绕过IP定位获取Steam捆绑包的不同地区货币价格,关键是同时配合URL查询参数和Cookie,而非单独修改其中一项,具体操作如下:
- 构造请求URL时,添加
cc查询参数,值为目标地区的ISO代码(比如US对应美元区、CN对应人民币区、EU对应欧元区)
示例URL:https://store.steampowered.com/bundle/1232/Resident_Evil_456/?cc=US - 设置请求Cookie:
steamCountry=XX%7C任意随机字符串,这里的XX必须和cc参数的地区代码一致,后面的哈希值无需真实有效(Steam不校验)
示例Cookie:steamCountry=US%7Cdeadbeef12345678 - 可选但建议添加请求头
Accept-Language,对应目标地区的语言代码(比如en-US、zh-CN),避免页面语言与地区不匹配导致的渲染异常
完整请求示例(curl)
curl 'https://store.steampowered.com/bundle/1232/Resident_Evil_456/?cc=US' \ -H 'Cookie: steamCountry=US%7Cdeadbeef12345678' \ -H 'Accept-Language: en-US,en;q=0.9'
原理说明
Steam的地区校验逻辑为多重判断:优先读取URL中的cc参数,同时要求steamCountry Cookie的地区部分与之匹配,只要这两项一致,IP定位会被忽略(除非该地区严格锁区,此时会显示商品不可用,但仍能获取对应地区的价格模板)。之前单独修改Cookie无效,就是因为缺少cc参数的配合,Steam会优先以IP或默认地区为准。
内容的提问来源于stack exchange,提问作者Lean-Juc Dicarp
相关产品推荐
相关产品推荐

