@AleDv

Как парсить большие XML файлы?

Дано: большой XML фид с объектами недвижимости в формате YML, используется Ларавель. Вопрос такой: как грамотнее парсить такие файлы?

Я могу за один запуск парсить, к примеру 5-10 объявлений (запись в базу + загрузка изображений на свой хост), чтобы не превышать время выполнения скрипта. Но при следующем запуске я опять буду читать эти же самые объявления, если фид не пополниться новыми.

Я думал создать таблицу в БД, в которую записывать id-шники новостей из фида, чтобы при парсинге проверять, смотрели ли я текущее объявление или нет. Но тогда, мне кажется, что эта таблица достаточно быстро начнёт раздуваться.

Каких-то других идей в голову не пришло. И буду благодарен, если подскажите, чем эффективнее парсить тяжёлые фиды.

UPD. Нужно сначала выкачать весь фид, а потом подкачивать новые записи, по мере обновления фида.
  • Вопрос задан
  • 900 просмотров
Пригласить эксперта
Ответы на вопрос 3
Dry7
@Dry7
Web разработчик
Вы можете последний ID сохранять, и проверять больше ли он или нет. Либо дату.
Но вообще зависит от задачи, возможно лучше сохранять ID, и потом одним запросом в начале скрипта брать их и сверять с xml.
Ответ написан
dimonchik2013
@dimonchik2013
non progredi est regredi
парсить эффективно Питоном

lxml например

и вообще все эффективно делать Питоном
Ответ написан
AmdY
@AmdY
PHP и прочие вебштучки
Создавайте команду, вешайте на крон. В консольном режиме нет никакого ограничения на время, вытащили фид, прошлись xmlreader, раз большой. никаких заморочек не надо. если совсем уж припрёт, можно использовать очереди, благо в ларке они из коробки
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы