Финальная сборка.
Собраны все ссылки, удалены дубликаты. Осталось 85к ссылок. Парсим рецепты
This commit is contained in:
39
log_err.py
Normal file
39
log_err.py
Normal file
@@ -0,0 +1,39 @@
|
||||
import json
|
||||
import os
|
||||
|
||||
def log_error(url, error, filename='Err.json'):
|
||||
"""
|
||||
Добавляет ошибку в список ошибок в JSON-файле.
|
||||
|
||||
Args:
|
||||
url (str): URL, на котором произошла ошибка.
|
||||
error (str or Exception): Описание ошибки.
|
||||
filename (str): Имя файла для логирования (по умолчанию 'Err.json').
|
||||
"""
|
||||
# Приводим error к строке, чтобы избежать проблем с сериализацией
|
||||
error_str = str(error)
|
||||
|
||||
# Загружаем существующие ошибки (если файл существует)
|
||||
if os.path.exists(filename):
|
||||
try:
|
||||
with open(filename, 'r', encoding='utf-8') as f:
|
||||
errors = json.load(f)
|
||||
except (json.JSONDecodeError, OSError):
|
||||
errors = []
|
||||
else:
|
||||
errors = []
|
||||
|
||||
# Добавляем новую ошибку
|
||||
errors.append({
|
||||
"url": url.strip(),
|
||||
"error": error_str
|
||||
})
|
||||
|
||||
# Сохраняем обратно
|
||||
with open(filename, 'w', encoding='utf-8') as f:
|
||||
json.dump(errors, f, ensure_ascii=False, indent=4)
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
Reference in New Issue
Block a user