Предисловие
Совсем недавно, когда началась эпопея с КиноПоиском, я задумался о переходе на IMDB — в плане переноса туда своих оценок фильмов. И желательно, чтобы это можно было сделать в автоматическом режиме, потому как проставлять вручную заново на IMDB свои 803 оценки фильмов не хотелось.
Поиски такой обработки привели меня на страницу камрада REDNBLACK-а., где он выложил, с его слов:
Простая программа импортирует оценки и добавляет в ваш список IMDB фильмы из файла *.xls, экспортированного с КиноПоиска
Простая?! Для тех, кто первый раз слышит (а таких на КиноПоиске, я думаю, процентов 80), что такое PHP, CURL, Composer — простая? За юмор — плюс в карму…
Вот как выразился пользователь Psyber с КиноПоиска, когда я ему предложил воспользоваться творением REDNBLACK-а:
Я, как простой смертный, не смог сообразить как ею воспользоваться, а очень бы хотелось...
Я расскажу что такое «простая»: это когда запускаешь приложение где два окна — в левом окне прописываешь ссылку на профиль в КиноПоиске, в правом — на профиль в IMDB и нажимаешь кнопку «Выполнить».
В любом случае — это лучше чем ничего, а REDNBLACK-у за проделанную работу — респект. Поэтому воспользовавшись, ну, прямо скажем спартанской инструкцией камрада, я приступил к переносу оценок фильмов. Вот что получилось.
Подготовка
Итак, сначала нам надо подготовить свои данные для переноса и установить на комп недостающий софт.
Заходим в свой профиль на КиноПоиске. Переходим на закладку «Оценки», жмём «экспорт в MS Exсel». Список с фильмами для переноса скачан, сам файл списка переименован и размещён в корень диска: d:kinopoisk_N.xls
Самая лёгкая часть процедуры выполнена.
Согласно рекомендациям REDNBLACK-а, теперь нам надо установить PHP. Поиск в google сразу отправил меня на сайт для скачивания.
Так получилось, что в тот день, когда я занимался переносом, данная ссылка на скачивание была недоступна, поэтому PHP был скачан в составе пакета XAMPP:
Запускаем установочный файл XAMPP и из предлагаемого списка для установки, оставляем только PHP.
Следующий этап – установка Composer. Скачиваем установочный файл (прямая ссылка). Запускаем. Composer спросит нас: «где находится PHP?». Мы ему указываем папку C:xamppphp, где у нас находится php.exe.
На IMDB регистрируем свой профиль или открываем уже зарегистрированный.
Создаем в своем профиле LIST (список) куда будем закачивать фильмы с оценками.
Раз:
Два:
Заходим во вновь созданный лист и записываем его id, который находится в адресной строке браузера — нам он еще пригодится. В моём случае id выглядит так:
Для переноса нам еще нужен id профиля. Что бы его найти, нажимаем комбинацию клавиш Ctrl+Shift+I (для Chrome). Находим сookies-строку авторизации:
Клацаем по строке сначала:
— два раза левой клавишей «мыши», потом
— один раз правой клавишей «мыши» и выбираем «Копировать».
Записываем id в текстовый файл для дальнейшей обработки.
Перенос
Начинается самое интересное.
Идем в гости к REDNBLACK-у и скачиваем его zip-архив:
Распаковываем архив на диск d:
Открываем Windows PowerShell и последовательно вводим команды, не забыв сначала сменить диск: cd d:
Вот где нам пригодился Composer.
А теперь всю собранную информацию будем собирать до кучи. Запускаем PowerShell и формируем строку-команду с параметрами на выполнение программы PHP. Эта строка имеет вид:
php application.php "полный путь к *.xls файлу" --auth="Cookie строка авторизации с IMDB" --list="ID списка для добавления" --query_format="тип запроса"
Разберём эту строчку — что и куда подставлять:
1. «полный путь к *.xls файлу»:
d:kinopoisk_N.xls
2. «Cookie строка авторизации с IMDB» (id профиля):
BCYkmNuQatCqhAmBX7k6158N8vu_26DTpFYfITPrIznWMrpFeLZipNznKBhXGoOJqsO9VoczRALY1fdNXMkkOPhoe9lua_kHr7xZMTTf-qkHiMOXx1HDif4eYyqGPKrYH-pnnWvFtrS7oBbbN87jUCyiG1cEIWHwSVsJKsYp8q1hl7aL0XZNIqQLT8X9sUhNER0VG
3. «ID списка (листа) для добавления»:
ls016952709
4. «тип запроса»:
mixed
(самый медленный, но надежный, процент точности около 90%)
Важно! Не забываем заключать текст опций в " ".
Складываем. Получаем готовую солянку:
php application.php d:kinopoisk_N.xls --auth="BCYkmNuQatCqhAmBX7k6158N8vu_26DTpFYfITPrIznWMrpFeLZipNznKBhXGoOJqsO9VoczRALY1fdNXMkkOPhoe9lua_kHr7xZMTTf-qkHiMOXx1HDif4eYyqGPKrYH-pnnWvFtrS7oBbbN87jUCyiG1cEIWHwSVsJKsYp8q1hl7aL0XZNIqQLT8X9sUhNER0VG" --list="ls016952709" --query_format="mixed"
Важно! Эту строку будем запускать из папки d:kinopoisksrc, поэтому последовательность переходов и запуск программы на выполнение, будет выглядеть так:
Кстати, если кто знает как избавиться от неправильной кодировки в PowerShell я буду признателен за совет.
Жмём Enter — процесс переноса пошёл! Осталось подождать. Моё ожидание составило 1 час 20 мин.
Выводы
Что мы видим после окончания процесса переноса?
Перенеслось 732 рейтинга (оценки) из 803. Не перенеслась 71 оценка. У меня закрались подозрения, что в этом виновато кириллическое написание названий фильмов. Но REDNBLACK так отреагировал на это:
Кириллические символы воспринимает. Улучшить уже не получится, по моему это и так идеально-возможный результат, с такими-то плохими данными у КиноПоиска.
Впрочем, нам и не обещали 100% результат.
Заключение
Я не являюсь специалистом в PHP, поэтому, если у кого возникнут технические вопросы — вы знаете к кому обращаться. Если кто найдет ошибки, или предложит другие (лучшие) способы переноса — поделитесь мыслями-пожеланиями.
P.S.: На перенос оценок фильмов (с изучением мануала, деталей, пробами, выявлению ошибок, консультациями) у меня ушло два дня. Если мой опыт кому-нибудь пригодится и позволит желающим, с учётом выше описанного мануала, затратить на перенос час времени — буду считать, что свое время я потратил не зря.
Автор: Proxima_Centauri