Вспомогательные команды
Перезагрузка страниц
В процессе забора страниц с сайта может возникнуть ситуация, когда сервер не отдаст вам страницу в том виде в котором она вам нужна, или например, заблокирует ваш прокси если вы черезчур активно будете забирать страницы. Для того, чтобы отрабатывать подобные ситуации, мы добавили команду page_reload. Она перезагружает текущую страницу и работает в блоковом и страничном контекстах.
Или вам может понадобиться перечитать содержимое страницы в клиенте, например, при использовании headless браузера в качестве клиента, когда нужно подождать пока отработают все скрипты на страницы перед забором содержимого. Для этого используется команда page_reread.
Примеры использования:
- find:
path: body
do:
# ПРОВЕРЯЕМ НЕ ЗАБЛОКИРОВАН ЛИ ПРОКСИ
- parse
- if:
# ОБРАТИТЕ ВНИМАНИЕ, НАДПИСЬ "request has been blocked" МОЖЕТ БЫТЬ
# ИНОЙ В ВАШЕМ СЛУЧАЕ, ТОГДА НЕОБХОДИМО ПОДСТАВИТЬ ТАКУЮ НАДПИСЬ
# ПО КОТОРОЙ ВАШ ДИГГЕР МОЖЕТ РАСПОЗНАТЬ, ЧТО ПРОКСИ БЛОКИРОВАН
# ЭТО ЗАВИСИТ ОТ КОНКРЕТНОГО САЙТА-ДОНОРА
match: "request has been blocked"
do:
# ПЕРЕКЛЮЧАЕМ ПРОКСИ
- proxy_switch
# ПЕРЕГРУЖАЕМ СТРАНИЦУ
- page_reload
- walk:
to: http://somesite.com/page.html
do:
# СТРАНИЦА ФОРМИРУЕТСЯ С ПОМОЩЬЮ JS В ТЕЧЕНИИ НЕСКОЛЬКИХ СЕКУНД ПОСЛЕ ЗАГРУЗКИ, ПОЭТОМУ ПОДОЖДЕМ 5 СЕКУНД
- sleep: 5
# ПЕРЕЧИТАЕМ СОДЕРЖИМОЕ КЛИЕНТА, ПОСЛЕ ПОЛНОГО РЕНДЕРА
- page_reread
В следующей главе вы узнаете как удалить URL из кеша загруженных страниц.