Если парсер не сохраняет данные в CSV, нужно понять: он ничего не собрал или собрал, но не смог записать файл.
На экране может казаться, что парсинг прошел успешно, но итоговый файл пустой, старый или вообще не создается.
Коротко: нужно проверить путь к файлу, права записи, фактические данные перед сохранением, кодировку и обработку ошибок.Почему возникает проблема
Проблема бывает из-за относительного пути при запуске из cron, запрета записи в папку, пустого массива данных, неверной кодировки, неправильного разделителя, незакрытого файла или исключения, которое не логируется.
Что проверить сначала
- сколько строк собрано до записи
- куда именно скрипт пишет CSV
- есть ли права на папку
- какая кодировка и разделитель нужны
- есть ли ошибка в логах запуска
Как я подхожу к исправлению
Я добавляю проверочные логи перед записью и после нее, чтобы отделить проблему парсинга от проблемы сохранения.
- исправляю абсолютный путь к файлу
- настраиваю права папки
- чиню кодировку и заголовки CSV
- добавляю проверку пустого результата
- делаю понятный лог сохраненных строк
Что подготовить перед работой
- сам скрипт парсера
- как он запускается: вручную или cron
- пример ожидаемого CSV
- ошибку или текущий пустой файл
- куда должен сохраняться результат
Какой результат нужен
Парсер должен создавать CSV с нужной кодировкой, понятными колонками и числом строк, которое совпадает с результатом сбора.
Чего лучше не делать
Не запускайте парсер от разных пользователей без понимания путей и прав. Из-за этого файл может создаваться в другом месте.
FAQ
Почему вручную сохраняет, а cron нет?
У cron другой рабочий каталог, окружение и пользователь. Нужны абсолютные пути и лог.
Почему CSV открывается кракозябрами?
Нужно подобрать кодировку и разделитель под Excel или целевую систему.
Можно сохранять сразу в базу?
Да, если данные потом нужно фильтровать, обновлять и не терять историю.
Что делать, если файл пустой?
Проверить количество собранных строк до записи и условия фильтрации данных.
Нужна похожая задача?
Напишите в Telegram @rabotator_support или оставьте заявку на сайте. Коротко опишите проблему, приложите ссылку, скриншот или лог ошибки, и я подскажу, с чего безопасно начать исправление.
Итог
CSV-сохранение в парсере должно быть проверяемым: путь, права, кодировка, количество строк и понятный лог после каждого запуска.