Рубрики
PHP

Как получить рейтинг КиноПоиск и IMDb для сайта

Раньше был API, по средствам которого можно было получить всю информацию о фильме, на данный момент можно получить только рейтинг КиноПоиск.

При этом получить рейтинг КиноПоиск и IMDb можно один запросом на КиноПоиск.

Запрос необходимо делать на адрес https://rating.kinopoisk.ru/<film_id>.xml, где film_idid фильма, например https://rating.kinopoisk.ru/347.xml.

id фильма можно узнать посмотрев на ссылку на странице фильма на сайте КиноПоиск. Старые ссылки выглядят так:
https://www.kinopoisk.ru/film/347/, новые так: https://www.kinopoisk.ru/film/ubit-gontsa-2014-464520/, последнее число — это и есть id.

Для решения задачи необходимо написать функцию, которая будет делать запрос, если в нее было передано значение id.

Запрос для получения рейтинга

Так как данные выдаются в XML, то и обрабатывать мы их будем как XML.

Далее необходимо получить значение рейтинга, при этом КиноПоиск предоставляет количество голосов, на основе которых получен итоговый рейтинг, но нам эта информация не интересна, так как значение обновляется достаточно часто и следить за ним в большинстве случаев смысла нет.

Чтобы получить значения, необходимо обратиться к соответствующим нодам документа: kp_rating и imdb_rating, для этого составим массив этих имен.

Массив имен рейтингов

После составления массива, его необходимо перебрать и получить значения, поместив их в новый массив, который в последствии будет возвращен функцией.

Цикл перебора значений рейтингов

Попутно будет сформировано новое имя для элемента, содержащего конкретный рейтинг. Значение рейтинга мы получаем преобразовав XML в DOM.

Полный листинг функции которая получает рейтинг КиноПоиск

 

Автор: Алексей Исаенко

Работаю full-stack разработчиком, специализируюсь на WordPress. За время трудовой деятельности сделал несколько полезных для пользователей вещей.
Помимо этого занимаюсь преподаванием - веду курсы по web-разработке.

Нравится лето, решать новые задачи в разработке, WordPress и Яндекс.

Загрузка комментариев...