Что говорит Filmweb о фильмах с Netflix?
Много лет я являюсь поклонником хороших фильмов. Я тщательно записываю свои отзывы после просмотра на filmweb.pl. Я заметил, что во многих случаях мое мнение совпадает с мнениями других пользователей этого портала. Несколько месяцев назад я продолжил свое киноискусство на сервисе Netflix. Несмотря на множество преимуществ, у него есть один недостаток - система рекомендаций.
Изначально я был склонен ей доверять и смотрел рекомендованные мне фильмы. Однако я быстро понял, что это средние/плохие фильмы, и их просмотр (среди множества хороших фильмов, которые я еще не видел) - просто потеря времени. Из этого родилась идея узнать, какое мнение о фильмах в Netflix имеют пользователи Filmweb и найти лучший фильм на свободный вечер.
Получение списка контента Netflix
Первым шагом является получение списка фильмов, которые в настоящее время доступны на Netflix. Поскольку API сервиса было приостановлено несколько лет назад, мы воспользуемся nflix.pl - веб-сайтом, который хранит информацию о контенте, доступном в популярном приложении VOD. Мы получим английские и/или польские названия фильмов, а также год их выпуска с помощью скрипта на Python:
# код для получения списка фильмов с nflix.pl
В результате работы программы мы получим входной файл в формате JSON
, который будет использоваться для дальнейшей обработки.
Получение рейтингов с filmweb.pl
Имея подготовленный список контента, можно приступить к получению основных данных о фильмах, в частности оценок пользователей. Используя поисковик Filmweb, для каждого фильма мы получаем список наиболее подходящих названий (ограничиваясь первой страницей результатов). Для удобства просмотра конечных результатов мы также получаем информацию о продолжительности, жанре и количестве оценок.
Затем из списка фильмов нужно найти наиболее подходящий. В этом процессе были приняты два предположения:
- год выпуска фильма должен быть в пределах ± 2 лет (из-за разницы во времени публикации между разными странами)
- название фильма на Filmweb должно быть похоже на 80% на искомое - это принято для учета небольших различий в написании (‘and’ вместо ‘&’; 10**.000 вместо 10,**000), отсутствие артикля (“2nd chance” vs “a 2nd chance”) и т. д.
На этом этапе у нас есть список всех фильмов вместе с оценками пользователей. Мы могли бы закончить поиск, но есть одно но...
Фильтрация просмотренных фильмов
Просматривая сгенерированный список, я быстро обнаружил, что большинство фильмов с самыми высокими оценками я уже видел. Проходить через огромное количество информации в поисках ценных фильмов оказалось утомительным. Поэтому я решил добавить модуль, который войдет в мой аккаунт и для найденных фильмов также загрузит мою оценку. Для этого я использовал модуль Selenium для Python, который часто используется для автоматизации тестирования веб-сервисов. В качестве движка модуля я использовал ChromeDriver в безголовом режиме (скачайте его здесь и поместите в /usr/bin
). Все сводится к нескольким шагам:
Когда у вас есть полная информация, достаточно сохранить данные в файл CSV, чтобы можно было удобно просматривать их, например, в электронной таблице:
Весь код можно найти в моем репозитории. Желаю всем удачного просмотра :)