Кеширование страниц в парсере

Кеширование в парсере — это сохранение результатов запросов к сайту на компьютере пользователя в виде файлов.

Кеширование преследует несколько целей:

  • уменьшение нагрузки на сайт, во избежание блокировки (бана) со стороны сайта
  • ускорение работы парсера (доступ к файлу кеша выполняется намного быстрее, чем запрос к сайту)
  • хранение результатов запросов для последующего анализа (в случае, когда некоторые страницы сайта не обрабатываются при многочасовом парсинге, можно в кеше найти результаты проблемных запросов, и понять причину ошибки)

Парсер умеет кешировать следующие данные:

 

Механизм работы кеширования в программе «Парсер сайтов и файлов»

Страницы сайтов кешируются парсером принудительно (если кеширование включено), т.к. при выполнении GET / POST запроса в большинстве случаев необходимо обращение на сайт. Парсер сохраняет результат каждого запроса в текстовый файл в специальной папке, и при выполнении очередного запроса сначала ищет ранее созданный файл. Если файл найден, то считывается содержимое из этого файла (кеша), и только если файла нет, то выполняется запрос к сайту. По умолчанию страницы сайта не кешируются, и каждый раз грузятся заново.
В кеш записываются только страницы с непустым ответом сервера, причем независимо от кода ответа сервера (200 ok или 403 нет доступа или 404 страница не найдена — файл кеша будет создан). В кеш не пишутся пустые ответы (если сервер не вернул данные, а есть только заголовки ответа), а также страницы, на которых обнаружена капча (если включено распознавание капчи в парсере). Причем, если капча успешно решена, и повторная загрузка страницы идет без капчи, то файл в кеше перезапишется.

В то же время, скачиваемые файлы (например, изображения) почти всегда кешируются самой Windows. Выполняя повторный запрос для скачивания фото по ссылке, мы получаем этот файл намного быстрее, чем при первой загрузке, что говорит о том, что Windows взяла этот файл из кеша Internet Explorer. В большинстве случаев нас такой вариант устраивает, т.к. маловероятно, что по одной и той же ссылке скачаются разные фото в разное время. По этой причине кеширование загружаемых файлов включено по умолчанию, но парсер для этого кеширования ничего не делает (также отправляет запрос на скачивание, при включенном кешировании, — просто этот запрос не доходит до сайта). Если же мы в настройках снимаем галочку кеширования файлов (такое нужно очень редко, но бывает), — парсер перед запросом принудительно удаляет в кеше Windows ранее скачанный файл, и после этого загружает его заново.
 

Когда нужно и когда не нужно использовать кеширование

В подавляющем большинстве случаев рекомендуется оставить настройки кеширования без изменений:

Настройки кеширования по умолчанию: кеширование страниц выключено, кеширование скачиваемых файлов включено.

Действие опции «Включить кеширование для веб-страниц» распространяется на все действия «Загрузить страницу по ссылке» в парсере, но есть возможность включать или отключать кеширование для отдельных действий.

Имеет смысл включить кеширование страниц в случае, если вы парсите сайт / каталог товаров без цен (например, нужны только названия и характеристики товаров, которые не меняются). Поскольку страницы каталога (со списком товаров) могут меняться (товары добавляются и исчезают), для таких страниц кеширование должно быть отключено, а для страниц товаров (которые неизменны, ибо не содержат обновляемой информации о ценах и наличии) кеширование можно включить.

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

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

Общий кеш для нескольких парсеров

Бывает, что несколько отдельных парсеров работают с одним и тем же сайтом, при этом используя кеширование страниц. В этом случае можно сделать так, чтобы все парсеры работали с одной и той же папкой кеша.
В настройках кеширования присутствует опция «Использовать кеш другого парсера», где можно выбрать, кеш какого из парсеров использовать.
 

Дополнительные инструкции