【问题标题】:Steam Api Store SalesSteam Api 商店销售
【发布时间】:2021-08-16 00:26:06
【问题描述】:

我想用 nodejs 做一个小脚本来跟踪有趣的 Steam 促销。

首先,我想检索正在销售的游戏列表。 我尝试了几件事,但没有成功......

在 store.steampowered.com 页面上的 GET 请求(有效,但仅显示前 50 个结果,因为其余结果仅在您滚动到页面底部时显示)

使用 API,但需要检索所有游戏的列表,但检查每个游戏是否都在促销中需要很长时间

如果有人有解决方案,我很感兴趣

非常感谢

【问题讨论】:

    标签: node.js discord steam-web-api


    【解决方案1】:

    您可以通过向 https://store.steampowered.com/api/featuredcategories 发送 GET 请求来获取精选游戏列表,但这可能无法为您提供所需的所有结果。

    import requests
    
    url = "http://store.steampowered.com/api/featuredcategories/?l=english"
    res = requests.get(url)
    print(res.json())
    

    您还可以通过向https://steamdb.info/sales/ 发送 GET 请求并进行一些广泛的 HTML 解析来获取所有正在销售的游戏。请注意,Valve 根本不维护 SteamDB。 编辑:以下脚本执行 GET 请求。

    import requests
    
    headers = {
        'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:88.0) Gecko/20100101 Firefox/88.0',
        'Accept': 'text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,*/*;q=0.8',
        'Accept-Language': 'en-US,en;q=0.5',
        'DNT': '1',
        'Alt-Used': 'steamdb.info',
        'Connection': 'keep-alive',
        'Upgrade-Insecure-Requests': '1',
        'Cache-Control': 'max-age=0',
        'TE': 'Trailers',
    }
    
    response = requests.get('https://steamdb.info/sales/', headers=headers)
    print(response)
    

    【讨论】:

    • steamdb.info 不允许我执行获取请求。我收到 403 错误消息:“请启用 JavaScript 并重新加载页面”
    • 嗯,我收到了来自 GET 请求的 200 响应,尽管响应是 HTML 格式并且很难理解。我将使用我使用的代码(在 Python 中)更新答案。
    猜你喜欢
    • 2017-05-10
    • 1970-01-01
    • 2019-12-03
    • 2012-11-16
    • 1970-01-01
    • 2019-01-05
    • 1970-01-01
    • 2016-12-20
    • 1970-01-01
    相关资源
    最近更新 更多