DotA2 The International 2013 статистика

Накидал небольшую статистическую страницу пои играм финальной части The International 2013. Удобно следить за прошедшими матчами и фишками типа лучшего ГПМ, лучшего киллера, суппорта и т.д. Ссылочка — The International 2013 статистика.

Обновление раз в 15 минут.

Немного технических подробностей:

  • GetMatchHistory с параметром league_id равным 65006 не работает — возвращает 10 игр Solo Mid.
  • В связи с этим пришлось использовать более хардкорный метод, основанный на запросе GetTournamentPlayerStats. Суть в том, что у нас есть 16 команд на чемпе. Берем из каждой по одному игроку (не обязательно капитану) и выполняем для него запрос GetTournamentPlayerStats, указав league_id 65006. Получаем список идентификаторов матчей каждой команды. Сливаем все эти списки в один большой. Очевидно, что там будут дубли (потому что команды играют между собой). Убираем им. Для каждого матча делаем запрос GetMatchDetails. Надо не забыть, что нам не нужны матчи Solo Mid. Потому для каждого спарсенного матча проверяем human_players. Этот параметр должен быть равен 10.
  • Для лучшей производительности рекомендуется сохранять матчи в локальной БД.
  • Парсинг матчей лучше повесить на cron. Время/интервалы — на свое усмотрение.

, ,

6 комментариев
  1. Андрей сказал(а):

    Добрый вечер уважаемый. Я хотел бы связаться с Вами и обсудить кое какие вопросы, я не отниму у Вас много времени. Свяжитесь со мной по скайпу Raven2790 или почта которую я написал в комментарии.

  2. shm сказал(а):

    Привет. Почитал статейки и зачесались руки) решил получить удовольствие и написать парсер игр с чампов, в целях саморазвития) у тебя все сделано шикарно и доходчиво, но хотелось разобраться и изобрести велосипед заново. Наткнулся на одну сложность, хочу вытащить все матчи по турниру , запросом http://api.steampowered.com/IDOTA2Match_570/GetMatchHistory/v1/?key=‘.KEY.’&league_id=’.$param

    приходят матчи в кол-ве 100шт, в турнире их 160, не могу понять что добавить в запрос для вывода остальных, возможно ты сталкивался и помнишь что к чему, не хочется усложнять и идти не травильными способами) спасибо)

  3. KronuS сказал(а):

    shm, добавь в URL параметр start_at_match_id. в нем укажи тот матч, с которого начинать «вторую страницу» парсинга.

  4. shm сказал(а):

    Спасибо за быстрый ответ.
    Этим параметром я первым делом пытался поиграться league_id=65001&start_at_match_id=0&matches_requested=5

    при таком запросе
    возвращает
    «total_results»: 154,
    «results_remaining»: 149
    154-149 = 5 игр он и выводит

    пробую
    league_id=65001&start_at_match_id=0&matches_requested=5

    возвращает
    «total_results»: 154,
    «results_remaining»: 0,
    то-есть он вроде бы нашел 154 игры, но ничего не вывел и показал что осталось не загруженных игр 0

    вот такая не понятная штука )

  5. shm сказал(а):

    во втором случае пробую
    start_at_match_id=5

  6. shm сказал(а):

    блин… сорри за отнятое время, понял в чем туплю) стыдно )

Оставить комментарий

Top ↑ | Main page | Back