diff --git a/app/main.py b/app/main.py index 2bb486b..338895f 100644 --- a/app/main.py +++ b/app/main.py @@ -3,7 +3,7 @@ import parse_saby from validation import DataValid import scheduler -print("Зпуск main.py") +print("Запуск main.py") def parse_data_in_list(dict_data: dict) -> list: """ @@ -20,25 +20,13 @@ def parse_data_in_list(dict_data: dict) -> list: result.append([key_id, *value_data]) return result -def validate_data(list_data: list[list]) -> list: - """ - Функция принимает список списков, выполняет парсинг и валидацию - с пмошью класса DataValid из файла validation.py. - Возвращает распршеный валидный список словарей для БД. - """ - result = [] - for intem_list in list_data: - try: - validated_data = DataValid.from_list(intem_list) # Передаем один лист - result.append(validated_data.model_dump()) # Добаляем валидный и распаршеный словарь - except: continue - return result + print("1/5. Запуск парсинга сайта") result_dict_data = parse_saby.process_reports_parse() print('2/5. Предварительный парсинг') list_data = parse_data_in_list(result_dict_data) print("3/5. Запуск валидации") -list_data_validated = validate_data(list_data) +list_data_validated = DataValid.validate_data(list_data) print("4/5 Отправка данных в БД") working_database.SimpleDB().data_transfer_in_database(list_data_validated) print("5/5. Запуск планировщика") diff --git a/app/scheduler.py b/app/scheduler.py index 43ad020..e3b2644 100644 --- a/app/scheduler.py +++ b/app/scheduler.py @@ -3,6 +3,7 @@ from apscheduler.triggers.cron import CronTrigger import subprocess def run_parser(filename = 'main.py'): + print(f"Запуск {filename}...") subprocess.run(['python', filename]) def launch_the_scheduler(h=6, m=0): @@ -10,7 +11,7 @@ def launch_the_scheduler(h=6, m=0): # Каждый день в 6:00 утра запуск run_parser() scheduler.add_job(run_parser, trigger=CronTrigger(hour=h, minute=m)) - + print("Планировщик запущен. Нажмите Ctrl+C для остановки.") try: scheduler.start() except KeyboardInterrupt: diff --git a/app/validation.py b/app/validation.py index 10129fb..69da214 100644 --- a/app/validation.py +++ b/app/validation.py @@ -36,4 +36,19 @@ class DataValid(BaseModel): try: return parser.parse(date) except(ValueError, TypeError): return date - return date \ No newline at end of file + return date + + @staticmethod + def validate_data(list_data: list[list]) -> list: + """ + Функция принимает список списков, выполняет парсинг и валидацию + с пмошью класса DataValid из файла validation.py. + Возвращает распршеный валидный список словарей для БД. + """ + result = [] + for intem_list in list_data: + try: + validated_data = DataValid.from_list(intem_list) # Передаем один лист + result.append(validated_data.model_dump()) # Добаляем валидный и распаршеный словарь + except: continue + return result \ No newline at end of file