Поиск самых популярных фильмов. Ранжирование по рейтингу Кинопоиска!
Популярные фильмы загружаются со страницы afisha.ru. Рейтинг по каждому фильму берется с kinopoisk.ru.
$ python cinemas.py --help
usage: cinemas.py [-h] [-n NUMBER] [-m] [--votes] [--clean-cache]
Get popular movies with highest kinopoisk rate
optional arguments:
-h, --help show this help message and exit
-n NUMBER, --number NUMBER
Number of results. Default: 10
-m, --most-cinemas Show only movies that are on in most cinemas
--votes Take the number of votes into account
--clean-cache Remove cached data. New data will be downloaded from
afisha and kinopoisk
11 задача с сайта devman.org - решай задачи и читай учебный материал
Для начала установим все зависимости
$ pip install -r requirements.txt
Запустим с предустановленными параметрами. Скрипт выведет 10 самых популярных фильмов, отсортированных по рейтингу Кинопоиска.
$ python cinemas.py
----------------------------------------------------------------------------
# Movie Rate Votes Cinemas
----------------------------------------------------------------------------
1 Гарри Поттер и философский камень .............. 8.192 203173 7
2 Москва, я терплю тебя .......................... 8.132 287 21
3 Гарри Поттер и узник Азкабана .................. 8.132 189970 7
4 Гарри Поттер и Тайная комната .................. 8.03 156046 7
5 Мы с вами где-то встречались ................... 7.938 1685 1
6 Вторая жизнь Уве ............................... 7.878 9109 1
7 Гарри Поттер и Кубок огня ...................... 7.875 149732 9
8 Кубо. Легенда о самурае ........................ 7.786 1024 121
9 Вальмон ........................................ 7.762 6732 1
10 Маленький лорд Фаунтлерой ...................... 7.746 125 1
----------------------------------------------------------------------------
Теперь мы хотим получить топ-5 фильмов, сортированных с учетом рейтинга Кинопоиска и количества проголосовавших, которые идут в большинстве кинотеатров, то есть отфильтровать артхаус:).
$ python cinemas.py --votes -m -n 5
----------------------------------------------------------------------------
# Movie Rate Votes Cinemas
----------------------------------------------------------------------------
1 Тайная жизнь домашних животных ................. 6.916 47828 20
2 Дом странных детей Мисс Перегрин ............... 7.077 28825 158
3 Москва, я терплю тебя .......................... 8.132 287 21
4 Кубо. Легенда о самурае ........................ 7.786 1024 121
5 Бриджит Джонс 3 ................................ 7.348 9546 24
----------------------------------------------------------------------------
Скрипт использует python 3 версии.
-n/--number
- количество фильмов для отображения-m/--most-cinemas
- показывать только те фильмы, которые идут в большинстве кинотеатров. Большинство => среднего
--votes
- при ранжировании учитывать не только рейтинг фильма, но и количество голосов--clean-cache
- программа активно использует файловый кеш. Кешируются запросы к afisha.ru и к kinozal.ru. По умолчанию срок жизни кеша - 7 дней. Данным параметром можно его очистить раньше, чем истечет срок его жизни.
При работе программы происходит парсинг afisha.ru. Нет никакой гарантии, что когда Вы захотите использовать скрипт, афиша не изменит свой html-код и скрипт будет работать.
С случае с данными из кинопоиска, используется api, которое кинопоиск реализует для своей новой версии plus.kinopoisk.ru. Данное решение работает, однако также нет гарантии, что в скором времени форма ответа api не изменится.