Парсер разработан как два java-приложения. Первое парсит напрямую Яндекс.Новости. В него забиты данные о категориях новостей и регионах, в которых требуется их парсить, а также статус категории в данном регионе (требуется ли парсить или нет). В данной реализации парсер не прекращает работу, лишь уходят в спячку на заданный в административной панели срок (от 3 до 5 минут на каждую итерацию).
Данный парсер собирает ссылку на источник новости, её название, данные о категории и дате размещения новости. Эта инф. складывается в служебную таблицу.
Проблему парсинга тысяч новостных ресурсов я решил следующим путём - был разработан универсальный парсер, который принимает в качестве значения ссылку на новость, регулярным выражением выдергивает название ресурса, ищет в базе шаблонов (об этом далее) шаблон этого сайта и выкачивает информацию по шаблону, складывая её напрямую в базу новостного сайта.
По поводу шаблонов - они задавались для каждого новостного сайта-партнёра Яндекса. Шаблон текстовый - указывает в каких тегах искать текст новости. Шаблон медийный - где искать изображение. В парсере было реализовано много крутых функций, о которых не позволяет написать объем описания. В приложении скриншот интерфейса для создания шаблонов.