Наглядный пример использования дампа очереди и истории

Parent Previous Next

Например, вы хотите парсить определенную категорию сайта с объявлениями. Допустим ссылки на страницы каталога объявлений имеют следующий формат:

http://site.com/cat1

http://site.com/cat1?page=2

http://site.com/cat1?page=3

http://site.com/cat1?page=4

http://site.com/cat1?page=5


При этом ссылки на страницы, содержащие сами объявления, имеют следующий формат:

http://site.com/ad?id=XXXXX

где XXXXX - идентификатор, уникальный для каждого объявления.


Также уточним, что начальные URL заданы следующим образом:



Сразу уточним, что ссылки на страницы каталога объявлений всегда остаются одинаковыми. В то время как содержащиеся на них объявления ежедневно обновляются. Нашей задачей является ежедневный сбор новых появившихся объявлений. В то же время нам нужно игнорировать объявления, которые уже были собраны ранее. Рассмотрим несколько вариантов настроек вкладки Общие -> Очередь и история.


1-вый вариант.


При такой настройке парсер при первом запуске пройдет по всем по страницам каталога и соберет найденные объявления. При последующих запусках парсер будет заново проходить по всем страницам каталога и собирать ВСЕ найденные объявления (даже те, что находились при предыдущих запусках). Таким образом, собранная информация будет дублироваться. Поэтому данный вариант нам не подходит.


2-ой вариант.


При такой настройке парсер при первом запуске пройдет по всем по страницам каталога и соберет найденные объявления. При последующих запусках (если в конце первого запуска у парсера в очереди не осталось страниц) парсер просто не запустится. Это произойдет потому что при инициализации он подгрузит в текущую историю дамп истории предыдущего запуска, а в этом дампе уже имеются ссылки на страницы каталога, которые заданы в Начальных URL (если вы конечно их не меняли с предыдущего запуска). В логе при этом отобразится запись:

Критическая ошибка: Очередь пуста после инициализации


Другими словами - очередь будет пустой, поскольку Начальные URL проверяются на наличие в истории и они там уже присутствуют, поэтому их нельзя добавить в очередь. Поэтому данный вариант нам также не подходит.


3-ий вариант.


Данный вариант настроек является решением проблемы, описанной в предыдущем случае. Опция Начальные всегда указывает, что несмотря на присутствие в истории (в частности, подгруженной из дампа истории предыдущего запуска парсера), все ссылки, которые перечислены в настройке Список начальных URL будут поставлены в текущую очередь. Таким образом, с первых 3-х страниц каталога (которые указаны в Списке начальных URL) будут собраны только новые объявления (которые не были найдены при предыдущих запусках). Но обратите внимание на нижеприведенные ссылки:

http://site.com/cat1?page=4

http://site.com/cat1?page=5


С них объявления не будут собираться по той же причине что и ранее - данные страницы каталога уже присутствуют в истории (подгруженной из дампа). То есть данный вариант настроек - это не совсем корректное решение задачи.


4-ый вариант.


Опция Не добавлять страницы каталога в дами истории позволит нам сделать самый правильный вариант настройки. Идея очень проста. Если Datacol видит, что страница является страницей каталога, то он ее не добавляет в дамп истории по окончании работы кампании. Таким образом, при последующих запусках во время инициализации истории (из дампа) в нее не попадут страницы каталога. Кстати, в таком случае чаще всего можно даже не использовать опцию Начальные всегда, но для стопроцентного результата лучше ее все-таки оставить.


Однако, есть очень важный момент, связанный с использованием опции Не добавлять страницы каталога в дами истории. Когда вы ее задействуете, вы должны обязательно указать Datacol, чем отличаются страницы каталога от страниц НЕ каталога (то есть страниц с данными - в текущем примере страниц с объявлениями). Для данной цели служат поля Форма URL страницы на вкладках Навигация и Сбор данных. Обратите внимание - обе эти настройки должны быть обязательным образом заполнены для использования опции Не добавлять страницы каталога в дами истории.



Created with the Personal Edition of HelpNDoc: Create HTML Help, DOC, PDF and print manuals from 1 single source