- Как заказать парсер сайта
- Видеоинструкции по настройке
- Возможности программы-парсера
- Действия в парсере
- Раздел «Работа с HTML»
- Раздел «Текстовые»
- Раздел «Перекодировка и форматирование»
- Раздел «Проверка и сравнение»
- Раздел «Разное»
- Раздел «Функции массива»
- Раздел «Числовые»
- Раздел «Работа с переменными»
- Раздел «Листы и книги Excel»
- Раздел «Обработка файлов из папки»
- Раздел «HTTP запрос»
- Раздел «Internet Explorer»
- Раздел «Управление парсером»
- Раздел «Веб-запросы, XML, макросы VBA»
- Недокументированные действия
- Работа с браузером (Chrome и т.п.)
- Интерфейс программы
- Использование браузера
- Ошибки при парсинге
- Дополнительные возможности
- Зарезервированные переменные и подстановочные коды парсера
- Кеширование страниц в парсере
- Переменные в парсере
- Обновление строк в существующей таблице при парсинге
- Переключение между наборами настроек в парсере
- Запуск мониторинга цен по расписанию
- Запуск парсера по расписанию
- Программный запуск парсера из внешнего макроса
- Доп. опции парсера (файл parser.ini)
- Наборы действий
- Прочие статьи по настройке парсера
- Коды останова парсера, и перехода на другое действие
- Плагины для парсера
- Запуск нескольких парсеров по очереди
- Обработка капчи (Captcha) в парсере
- Прокси серверы
Обход защиты Qrator, Incapsula и CloudFare |
На некоторых популярных сайтах устанавливается защита от DDoS, когда при запросе страницы сайта сначала выдаётся промежуточная страница с javascript, которая выполняет проверку на браузер (роботы / парсеры обычно не используют браузер, потому не проходят эту проверку), и, только если проверка пройдена, этот скрипт перенаправляет вас на ту же страницу, только уже с реальным её содержимым.
Скрипт этот выполняет некоторые вычисления, потом устанавливает Cookies, и при следующем запросе этой же страницы передаются эти Cookies, — так сайт определяет, что проверка на браузер успешно выполнена.
Как проверить, проблема в защите сайта от DDoS, или в чём-то другом?
В случае использования подобной защиты (Qrator, Incapsula, CloudFare и т.п.), в коде страницы вместо данных будет одна или несколько ссылок на файлы со скриптами js
Как обойти эту защиту при использовании парсера?
Вариант 1
- загружаем любую страницу сайта (например, главную) в браузере Internet Explorer
- ждём несколько секунд пока отработает скрипт
- убеждаемся что на странице прогрузились данные (что произошел редирект после выполнения скрипта)
- считываем Cookies из Internet Explorer
- выполняем запросы к сайту с использованием этих Cookies (действие Загрузить страницу по ссылке, режим загрузки — WinHTTP)
Вариант 2
Рассмотрим этот вариант на примере сайта leroymerlin.ru с защитой Qrator.
Там страницы разделов грузятся без проблем, а вот для страниц товаров срабатывает защита.
При загрузке страницы товара парсером, мы получаем очень короткий ответ:
В ответе мы видим запуск скрипта: <script src="/__qrator/qauth_utm_v2.js"></script>
Значит, это как раз тот случай, когда надо обходить такую защиту.
- читаем иструкцию по обходу подобных защит
- ищем список IP этого сайта:
https://viewdns.info/iphistory/?domain=leroymerlin.ru - берем второй IP адрес из списка (прямой адрес сайта), подставляем его в ссылку на товар вместо адреса сайта, и проверяем ссылку в браузере:
http://178.248.234.184/product/hozblok-metallicheskiy-2-05x2-57x2-02-sm-84759919/
ура, страницы отображаются в браузере, — значит, с большой вероятностью мы справимся с обходом блокировки - проверяем загрузку парсером — уже лучше, но получаем ошибку 403:
- добавляем заголовки запроса из браузера, проверяем, — всё заработало:
Действие Параметр Значение Создать новый экземпляр WinHTTPRequest Сброс Cookies и заголовков запроса да Добавить заголовок запроса Заголовок Accept Значение text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.9 Использовать для ВСЕХ запросов да Добавить заголовок запроса Заголовок Connection Значение keep-alive Использовать для ВСЕХ запросов да Добавить заголовок запроса Заголовок Host Значение 178.248.234.184 Использовать для ВСЕХ запросов да Добавить заголовок запроса Заголовок Upgrade-Insecure-Requests Значение 1 Использовать для ВСЕХ запросов да Добавить заголовок запроса Заголовок User-Agent Значение Mozilla/5.0 (Windows NT 6.1; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/99.0.4844.82 Safari/537.36 Использовать для ВСЕХ запросов да Загрузить страницу по ссылке Способ загрузки WinHTTP Кеширование URL Дополнительные опции
- Добавить комментарий
- 2088 просмотров
Комментарии
Сейчас парсер поддерживает работу с браузером Chrome, там эта защита обходится.
Уже не работает....