【问题标题】:How to retrieve steam market price history?如何检索 Steam 市场价格历史?
【发布时间】:2015-11-04 20:45:35
【问题描述】:

我正在尝试获取 Steam 市场上商品的价格历史记录。我找到了一个链接,该链接返回特定商品的价格历史记录(几乎每个关于从本网站获取市场价格历史记录的问题中都提到了这一点)。

http://steamcommunity.com/market/pricehistory/?country=PT&currency=3&appid=730&market_hash_name=Falchion%20Case

当我在 Steam 中登录时,它在浏览器中运行良好,但是当我尝试在 python 中做同样的事情时,它返回一个空列表(当我尝试在浏览器中做同样的事情而不是正在登录 Steam)。这是我的 python 代码(使用请求库):

import requests

params = {'country': 'RU', 'currency': 5, 'appid': 730, 'market_hash_name': 'Falchion%20Case'}
data = requests.get('http://steamcommunity.com/market/pricehistory', params=params)
print(data.text)

所以,问题是:有没有什么方法可以模拟在使用 python(或其他语言)发出请求时在 Steam 中登录?

【问题讨论】:

  • 您可以使用 javascript,使用您的浏览器会话。
  • @Haketo,谢谢你的建议,它让我想到我可以使用 cookielib 和 python 来模拟浏览器会话。如果可行,我会尝试。

标签: python steam steam-web-api


【解决方案1】:

上面写着{'steamLogin':'...'},应该是{'steamLoginSecure':'...'}。所以正确的代码是:

cookie = {'steamLoginSecure': '76561198058933558%7C%7C2553658936E891AAD'}    
data = requests.get('http://steamcommunity.com/market/pricehistory/?country=PT&currency=3&appid=730&market_hash_name=Falchion%20Case', cookies=cookie)

【讨论】:

    【解决方案2】:

    您需要将Cookie 键steamLogin 设置为您的会话ID。您可以在浏览器上执行登录并获取此值。

    cookie = {'steamLogin': '76561198058933558%7C%7C2553658936E891AAD'}    
    data = requests.get('http://steamcommunity.com/market/pricehistory/?country=PT&currency=3&appid=730&market_hash_name=Falchion%20Case', cookies=cookie);
    

    我在这里使用了一个随机的steamLogin 值,将其更改为您的会话 ID。

    您也可以尝试通过 python 执行登录,但您可能需要关闭 Steam 防护以使事情变得更简单。我会演示自动执行登录,但我不希望禁用我的蒸汽防护并获得 15 天的交易限制。

    【讨论】:

    • 如何获取 Steam 登录值?
    • @FistOfFury 对于 Chrome,设置 > 高级 > 内容设置 > cookie > 查看所有 cookie 和站点数据 > 查找 steamcommunity.com > 查找“steamLoginSecure” > 复制“内容”字符串
    猜你喜欢
    • 2015-01-21
    • 1970-01-01
    • 2016-03-12
    • 2021-04-23
    • 2016-06-30
    • 2015-10-08
    • 1970-01-01
    • 2021-01-26
    • 2017-09-09
    相关资源
    最近更新 更多