如何使用 PHP 或 JavaScript 请求超过 10000 次的 Steam API

How to request Steam API over 10000 times with PHP or JavaScript?

本文关键字:10000 次的 Steam API 请求 何使用 PHP JavaScript      更新时间:2023-09-26

我需要调用 Steam 市场 API 超过 10000 个请求来获取所有商品价格。我想将它们保存在我的MySQL数据库中。但我的请求总是崩溃。有没有办法为太多的请求调用 API?

 file_get_contents("http://steamcommunity.com/market/priceoverview/?country=US&currency=1&appid=570&market_hash_name=$marketHashName")

例:

http://steamcommunity.com/market/priceoverview/?country=US&currency=1&appid=570&market_hash_name=Dragonclaw%20Hook

Steam API 每天限制为 100,000 个请求——一天是在 24 小时内还是基于日历日并不完全清楚。 过去,我已经从同一个IP地址发出了数千个请求,没有任何问题。

您是否收到 403 响应代码? 如果是这样,您可能正在达到速率限制。 如果使用多个 IP 地址会有所帮助,我也会感到惊讶,因为速率限制可能与您的 API 密钥相关联。

我知道

这是一个古老的问题,但由于我正在做一些研究,包括Steam for Work,我想这可以帮助一些人。

首先,我们处理大量请求的方式是启动(在您的情况下为 10,000 个)调用请求并使用数据的进程 - 延迟 100 毫秒,否则我们的数据库将无法完成所有命令,它会弄乱保存的数据。我不知道您是否可以毫不拖延地发送所有这些请求。

其次,限制每个日历日。您可以在一天内发送 100,000 个请求,从午夜开始再发送 100,000 个请求。

另一点是,我不知道当您发送超过 100,000 个请求时会发生什么。所以要小心。

您基本上需要通过不同的 IP 地址将请求拆分为多个请求,而不是 1 个 IP 发送 10,000 个请求。例如,10 个 IP 发送 1000 个请求,每个请求之间大约 500 毫秒。否则,Steam/Akamai 只会禁止您的 IP 进行泛洪或 DDoS 尝试。同样,10,000 个请求是很多请求,您将需要更好/更多的基础设施才能尝试有效地执行此操作。