Skip to content

Svitavsky/lostfilm-parser

Repository files navigation

Описание

Парсер свежих эпизодов сериалов с сайта LostFilm

Alt text

Требования

PHP 7.0 и выше

Composer

Mysql

Установка

Перед запуском, скопировать содержимое .env.example в ту же папку в файл .env, изменив в нем данные о соединении с БД.

Затем, выполняем composer install для установки дополнительных пакетов.
После, нужно выполнить миграции, предварительно настроив соединение с БД - php artisan migrate

В сборке используется пакет для парсинга HTML - DiDom.

Почему он? Из-за скорости его работы и простоты. Подробнее про скорость здесь.

Также добавлен пакет debugbar для проверки скорости работы сайта и запросов. Включается в .env файле с помощью APP_DEBUG=true

Конфигурация

Для конфигурации проекта используется файл config/lostfilm.php

Параметры:

  • url - нужен на случай, если изменится путь к странице
  • episodes_per_page - нужен на случай, если количество записей на стрнанице изменится с 15 на другое число
  • season_episode_regex - регулярное выражение для получения номера сезона и серии из строки, можно модифицировать на свой страх и риск
  • release_date_reges - регулярное выражение для получения даты релиза серии на обоих языках, можно модифицировать на свой страх и риск
  • enable_sphinx_search - в данный момент бесполезна. Подразумевается, что в дальнейшем для поиска можно будет подключить какую-либо поисковую систему

Скрипт можно повесить на cron с помощью Laravel Schedule в файле app/Console/Kernel.php.

Пример: $schedule->command('parse:lostfilm')->hourly();

Другие параметры и как настроить Cron для данной задачи, можно найти в официальной документации Laravel

Основные команды

php artisan parse:lostfilm --all - нужно запускать в первую очередь. С данным флагом, будет произведена очистка таблиц с эпизодами, скрипт пройдется по всем страницам раздела и заново заполнит данные.

php artisan parse:lostfilm - стандартный запуск парсера, будут собраны все свежие серии только за сегодняшний день.

php artisan parse:lostfilm --refresh - запуск парсера для проверки, не была ли пропущена серия, а также на случай, если серия была добавлена "задним числом".

Замечания

Скрипт пишет результаты в стандартный .log файл фреймворка с пометкой [LostFilm parser], также пишет туда ошибки в случае их возникновения и невозможности продолжить дальнейшую работу.

Сделан задел на мультиязычность, тк таблицы разделены на основные и с локализированными описаниями.

Поиск идет на русском + английском языках, по названию сериала + названию эпизода.

About

Parser of LostFilm latest series and episodes

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published