Задать вопрос
tregor
@tregor
Senior PHP Backend developer

Как обойти защиту Cloudflare при парсинге?

Приветствую!

Предстоит задача - парсить сайт, который защищён от парсинга средствами Cloudflare.
Т.е. обычный file_get_contents вернёт HTTP ошибку 403.

Немного разобравшись в принципах и устройстве данной защиты пришёл к тому, что Cloudflare проксирует запросы и перед тем, как выдать HTML код, выдаёт некую "невидимую" JavaScript капчу. По сути эта капча - JS код который отрабатывает сразу после загрузки и позволяет загрузить оставшуюся часть страницы.
При обычных запросах само собой JS у нас не отрабатывает.

Пошарив по нету нашёл несколько устаревших решений а-дя Guzzle Cloudflare bypass, однако ни одно из готовых решений запустить не удалось.

Если я правильно понял алгоритм, нам необходимо делать запрос через браузер с отработкой JS. Для этого, в теории, должен подойти консольный headless браузер.

Вопросы:
1. Что такое headless бразуер? Я плохо это понял и ранее с подобным не работал.
2. Как можно организовать многопоточность (Много...вкладочность?) через такой headless браузер?
3. Сработает ли вообще такой подход для обхода защиты Cloudflare?
4. Какие подводные камни ожидать?

P.S.: Сейчас сижу разворачиваю на второй машине Docker c chromium и буду проверять теорию, но дабы не терять время решил сразу закинуть вопрос на хабр. Кто может помочь любым ответом или комментарием - буду безмерно благодарен!
  • Вопрос задан
  • 4124 просмотра
Подписаться 1 Простой 3 комментария
Помогут разобраться в теме Все курсы
  • Skillfactory
    Профессия Fullstack веб-разработчик на JavaScript и PHP
    20 месяцев
    Далее
  • Хекслет
    PHP-разработчик
    10 месяцев
    Далее
  • Нетология
    Веб-разработчик с нуля: профессия с выбором специализации
    14 месяцев
    Далее
Решения вопроса 2
@FasterTans
1. Что такое headless бразуер? Я плохо это понял и ранее с подобным не работал.
Selenium, Puppeteer
2. Как можно организовать многопоточность (Много...вкладочность?) через такой headless браузер?
Взависимости от выбранного браузере вбиваете в гугл "многопоточность selenium\puppeteer"
3. Сработает ли вообще такой подход для обхода защиты Cloudflare?
Да, погуглите как обходить защиту.
Ответ написан
Комментировать
@yoori
Мой подход :
запускаю docker из https://github.com/yoori/flare-bypasser
дергаю вызов /get_cookies с нужным url, далее с этими куками дергаю сайт через обычный python requests
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы
FoodSoul Калининград
от 180 000 до 250 000 ₽
IT-Spirit Москва
от 230 000 до 320 000 ₽
от 200 000 до 290 000 ₽