Как парсить инвентарь пользователя steam без банов

Если я буду использовать стандартную ссылку для анализа пользовательского инвентаря Steam
(https://steamcommunity.com/profiles/{ steamid } /inventory/json/730/2)
более 2-3 раз в минуту я получу бан от API Steam на 5 мин. Как его разобрать без банов? Использование node.js.


person M. Dmitriev    schedule 19.01.2017    source источник
comment
совершать звонки с нескольких разных серверов. например, простой php-скрипт может отмыть источник запроса и выдать ответ главному приложению.   -  person dandavis    schedule 19.01.2017
comment
Мне сказали, что я использую node.js, а не php.   -  person M. Dmitriev    schedule 20.01.2017


Ответы (2)


Сохраните результат, полученный от вашего первого запроса, и используйте его повторно вместо повторного запроса Steam каждый раз, когда вы хотите прочитать данные.
Псевдокод:

if(!cache) 
    getDataFromSteam()
    saveDataToCache()
else
    getDataFromCache()
person Villa7_    schedule 19.01.2017
comment
Почему нет? Другие ответы также предлагают использовать кеш, а большие сайты, такие как tf2wh, также полагаются на систему кеширования, поскольку маловероятно, что инвентарь пользователя будет меняться несколько раз за короткий период. - person Villa7_; 19.01.2017
comment
Хорошо, сейчас я использую API моего друга (он не хочет говорить мне, как он это делает). У моего сайта в среднем 100-200 онлайн и много новых пользователей. Мне нужно загрузить инвентарь без каких-либо банов, потому что это не серьезно - person M. Dmitriev; 19.01.2017

Если вы отправляете слишком много запросов, вы отправляете слишком много запросов. Это факт, который вы должны принять и работать с ним. Я знаю из собственного тестирования, что вы ограничены 200 звонками за 5 минут. У вас есть несколько вариантов:

  • Реализуйте процедуру, которая ограничивает количество звонков до 200 в течение 5 минут и не более, чтобы избежать бана.
  • Кэшируйте звонки, которые вы делаете, чтобы избежать дублирования звонков для одного пользователя.
  • Используйте другие IP-адреса, указанные @Dandavis.
person EliteRaceElephant    schedule 13.02.2017