@lolrofl01

Как парсить сайты с cloudflare на php?

Добрый день.
Стоит задача спарсить сайт, который защищен cloudflare. Желательно на php.

Первым делом я взял postman и отправил get запрос на получение нужной страницы через него. И получил нужный результат! После чего я попробовал запросить контент через file_get_contents и ожидаемо получил 403 ошибку. Значит cloudflare все таки работает. Тогда я попробовал спарсить через curl с сохранением куков. Через курл результат получился: "Just a moment... Checking if the site connection is secure".

На этом моменте я застрял и пошел гуглить как все это работает. Нагуглил информацию, что cloudflare посылает в браузер js скрипт. Отработал - значит норм, нет - бот. Решил это проверить. Запустил оперу, отключил у нее js и куки и чтобы вы думали? Сайт прекрасно открывается! Пол сайта не работает (т.к. на js) но вся нужная информация отображается, никаким cloudflare не пахнет. Я решил скопировать весь запрос как curl (чтобы и юзерагент там был такой же, и всякие прочие параметры), но у меня результат все тот же: "Just a moment".

Гуглил, что есть системы обхода на питоне, есть хедлесс браузеры. Нагуглил инфу, что мол cloudflare обойти легко, достаточно перехватить математический пример на js, решить его и вернуть. А еще кто-то сказал, что достаточно 5 секунд выждать. В итоге 5 секунд я выжидал благодаря sleep(5) - результата нет, а что за математический пример и где его взять - я не понял.

Так что я уже запутался. Скажите, на php вообще реально написать такой парсер? и если да, то что для этого надо делать? Спасибо.
  • Вопрос задан
  • 1111 просмотров
Пригласить эксперта
Ответы на вопрос 3
iMedved2009
@iMedved2009
Не люблю людей
можно. но придется повозиться. cloudflare будет тригерится на любую как ему кажется подозрительную активность, как то серверный ip, частые обращения и так далее. пробуйте через headless браузеры + php-webdriver/php-webdriver или chrome-php/chrome или еще чего то подобное
Ответ написан
Noizefan
@Noizefan
Пробей домен по сканерам субдоменов, подсетей итд - высока возможность найти чистый ип если сервис не сильно большой
Ответ написан
@yoori
Мой способ : понимаем докер из https://github.com/yoori/flare-bypasser , делаем к нему запрос за куками и с этими куками ломимся на целевой сайт - у меня стабильно работает
Ответ написан
Комментировать
Ваш ответ на вопрос

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

Похожие вопросы