Проект: Поставщики
Очистка кэша
Диггер формирует кэш в зависимости от использования опции unique команды walk или опции update для команд object_save и object_check. Соответственно кэш делится на два вида, при использовании walk - это кэш URLов, а при использовании object_save - это кэш записей. Система кэша дает диггеру возможность избегать повторного захода на тот же самый URL (к примеру URL с деталями конкретного товара), если включен режим unique команды walk. В случае же режима update команды object_save, диггер не будет записывать данные по конкретной записи, если такая запись уже была собрана ранее, не изменилась и существует в кэше. Это может быть удобно тогда, когда вам необходимо получать только новые записи с сайта источника, игнорируя уже собранные ранее данные.
Для более точного понимания давайте рассмотрим работу кэша на примере команды walk.
Предположим имеется сценарий, где мы последовательно заходим на две ссылки:
---
config:
debug: 2
agent: Firefox
do:
- link_add:
url:
- https://www.diggernaut.com/sandbox/meta-lang-hash-table-en.html
- https://www.diggernaut.com/sandbox/meta-lang-normalize-tables-en.html
- walk:
to: links
mode: unique # РЕЖИМ UNIQUE ВКЛЮЧЕН
do:
Если мы запустим этот сценарий, то после выполнения в кэш URLов будут занесены обе эти ссылки, по которым диггер прошел в ходе работы в режиме unique.
Если посмотреть в раздел очистки кэша, то мы увидим подсказку:
Теперь, давайте добавим к уже существующему списку ссылок еще одну:
---
config:
debug: 2
agent: Firefox
do:
- link_add:
url:
- https://www.diggernaut.com/sandbox/meta-lang-hash-table-en.html
- https://www.diggernaut.com/sandbox/meta-lang-normalize-tables-en.html
- https://www.diggernaut.com/sandbox/meta-lang-object-en.html
- walk:
to: links
mode: unique # РЕЖИМ UNIQUE ВКЛЮЧЕН
do:
Снова запустим диггер, заглянем в лог исполнения и увидим следующие сообщения:
Skip: https://www.diggernaut.com/sandbox/meta-lang-hash-table-en.html
Skip: https://www.diggernaut.com/sandbox/meta-lang-normalize-tables-en.html
Retrieving page (GET): https://www.diggernaut.com/sandbox/meta-lang-object-en.html
Диггер проигнорировал уже собранные ранее ссылки и забрал только новую. Записей в кэше теперь стало 3. Если мы еще раз попытаемся запустить диггер с этим же сценарием, то обнаружим что диггер проигнорировал уже все 3 ссылки и завершил работу.
Таким же образом кэш работает и для команды object_save.
Обратите внимание!
Кэш един для всех сессий. Это значит, что при каждом запуске диггер будет обращаться к уже существующему кэшу и проводить сверку с ним. Если вам нужно начать сбор данных с нуля, вам необходимо очистить соответствующий кэш.
Для очистки кэша выберите пункт Очистить кэш:
Выберите необходимый для очистки вид кэша:
и нажмите на кнопку Подтвердить.
ДалееОбратите внимание!
Кэш будет удален безвозвратно.