1

Тема: Что можно получить из кода по кинопоиску?

Имеем код по каталогу кинопоиска - например

1232908

или

1332676

или 252089
Какую информацию можно получить?

1) Для сериала полная информация есть на странице

https://www.kinopoisk.ru/series/252089/

или для фильма

https://www.kinopoisk.ru/film/326/

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

2) И как отличить сериал это или фильм по коду?

3) Как получить трейлер? Они есть на кинопоиске, но номера не совпадают. Например для сериала с кодом 252089, трейлер имеет
код 164608

https://widgets.kinopoisk.ru/discovery/trailer/164608?onlyPlayer=1&autoplay=1&cover=1

с прямой ссылкой

https://strm.yandex.ru/vh-kp-converted/ott-content/579603247-432b3f2f8f28037ba70d132622d0afd5/master.m3u8


В файле

https://www.kinopoisk.ru/series/252089/

мы его видим без проблем, если бы не капча.

4) Постер фильма - проблем нет, получаем по id

 http://st.kp.yandex.net/images/film_iphone/iphone360_252089.jpg

, где 252089 это и есть id по kp

Возможно можно получить нужную информацию не напрямую с кинопоиска?
Буду благодарен за любые советы в этом направлении.

2 (2020.07.29 10:29:43 отредактировано Defrl)

Re: Что можно получить из кода по кинопоиску?

полный json только у фильма. у сериала там не вся инфа указана. если сравнивать с содержимым страницы

парсеры блокируются. заголовки, куки, пауза между запросами не помогают, если парсить хотя бы сотни фильмов в день

по айдишнику фильм от сериала не отличить. но если в ссылке указать /film/{id} вместо /series/{id}, то у сериала будет редирект на страницу /series/.
можно проверять только заголовок с редиректом, чтобы определить сериал

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

у постеров сейчас новая ссылка на картинку. старая делает просто редирект. не факт, что она будет работать постоянно

видел несколько апи серивисов для кинопоиска - но там не вся информация, обновляются редко, некоторые уже закрылись

поэтому, если нужно получить данные с кинопоиска, лучше всего парсить самому через selenium и реальный браузер

Спасибо сказали: smsbox31

3

Re: Что можно получить из кода по кинопоиску?

Неофициальное апи для доступа к актуальной информации кинопоиска.

https://kinopoiskapiunofficial.tech/
Спасибо сказали: smsbox31

4 (2020.07.29 21:35:09 отредактировано smsbox3)

Re: Что можно получить из кода по кинопоиску?

pwsik пишет:

Неофициальное апи для доступа

Все хорошо, но есть ограничение  на запросы.

5 (2020.07.30 09:30:52 отредактировано bond)

Re: Что можно получить из кода по кинопоиску?

У меня как то так

Прикреплённые файлы сообщения

C3D0fGFPe7.png 12.71 kb, скачивалось 2 раза, начиная с 2020.07.30

6 (2020.07.30 10:52:46 отредактировано smsbox3)

Re: Что можно получить из кода по кинопоиску?

bond пишет:

У меня как то так

А можете попробовать сделать 15 запросов в секунду? Просто реальная нагрузка, когда не для себя делаешь, может в пиках быть и такой. У меня хостинг ограничение в 50 одновременных подключений делает, значит сервер легко может выдать 15 запросов в секунду от пользователей.
И еще, если вызвать https://kinopoiskapiunofficial.tech/doc … enapi.json то, там видим сообщения типа

 "429" : {
            "description" : "Too Many Requests. Limit 10 req/sec"
          }
"429" : {
            "description" : "Too Many Requests. Limit 0.5 req/sec"
          }

Разные, для разных разделов.

Re: Что можно получить из кода по кинопоиску?

На счет снятия ограничений пишите на почту support@kinopoiskapiunofficial.tech, думаю это решаемо

Спасибо сказали: smsbox31

8 (2020.08.05 09:00:25 отредактировано smsbox3)

Re: Что можно получить из кода по кинопоиску?

kinopoiskapiunofficial пишет:

На счет снятия ограничений

Спасибо за вашу работу, принял на заметку.

Для информации рейтиги можно с самого кинопоиска брать Например так 

https://rating.kinopoisk.ru/678552.xml 

В результате получаем

<rating>
<kp_rating num_vote="99200">6.556</kp_rating>
<imdb_rating num_vote="375080">6.8</imdb_rating>
</rating>

Функция на php для получения рейтинга

// описание функции
function get_rating( $id = null ) {
 $rating = [];
 if ( ! empty( $id ) ) {
 $xml   = simplexml_load_file( 'https://rating.kinopoisk.ru/' . $id . '.xml' );
 $names = ['kp_rating', 'imdb_rating'];
 foreach ( $names as $name ) {
 $new_name            = str_replace( '_rating', '', $name );
 $rating[ $new_name ] = dom_import_simplexml( $xml->$name )->nodeValue;
 }
 }
 
 return $rating;
}
 
// вызов функции
$rating = get_rating(347);
 
// выводим рейтинг КиноПоиск
echo $rating['kp'];