Найти в Дзене
SiteAnalyzer

Как спарсить сайт с помощью SiteAnalyzer, если он защищен CDN Cloudflare от сканирования ботами?

Это возможно. Что для этого понадобится?

1. Терпение. Такие сайты будут долго сканироваться.
2. Google Chrome и владение пользованием Dev Tools.
3. Понимание, что такое HTTP заголовки, Cookies и параллельные треды HTTP запросов.

В чем проблема?

Cloudflare позволяет настраивать сайтам защиту от ботов, что мешает анализировать эти сайты разным SEO-тулзам. Особенно это касается тулов, не уважающих robots.txt, или сами боты малоизвестны. Например, условный Ahrefs или SemRush может иметь доступ к контенту сайта, но условный Serpstat увидит только 403 кода статуса (в доступе запрещен).

Поэтому, когда вы сканируете сайт с помощью SiteAnalyzer, то Cloudflare детектирует вас как неверифицированного бота, поэтому страницы будут отдавать 403 код статуса.

-2

Список ботов, которые верифицированы Cloudflare, можно найти здесь:

https://radar.cloudflare.com/traffic/verified-bots

Кроме блокировки на уровне ботов, еще в Cloudflare есть защита от DDOS атак, а также ограничения по частоте парсинга, повышающие закрываемый доступ и начинающие вываливаться 403 ошибки. Это создает некоторые проблемы для сеошников.

Давайте их решим!

Как именно Cloudflare отличает обычного посетителя от бота? Здесь осуществляется много механизмов, но если есть какое-то подозрение, то посетитель увидит капчу с js-верификацией. После верификации устанавливается кука на некоторое время, позволяющая посетителям сайта дальше без проблем осуществлять по нему навигацию. Кука подвязана под данные браузера и HTTP заголовки, идущие от него.

Вам нужно настроить SiteAnalyzer таким образом, чтобы HTTP заголовки и кука совпадали с отправкой браузера. Тогда CloudFlare будет считать, что вы просто посещаете сайт из браузера. Заменить только User-Agent на Googlebot не получится, потому что идет проверка по IP-адресу.

1. Откройте Google Chrome, а также Dev Tools, вкладку "Сеть".

2. Откройте сайт, который вы планируете сканировать. Если это осуществляется первый раз за долгое время, то получится капча с верификацией и последующий редирект с установленной кукой.

3. В отчете Dev Tools отфильтровываете запросы по типу "Документ", чтобы легче найти нужный запрос. Ищете ту запись, которая соответствует открытой странице (ибо будет много запросов, потому что страница состоит из js/css файлов, изображений/шрифтов и прочего).

4. Открываете "Заголовки запросов" - это заголовки, которые отправляет браузер на страницы этого сайта. Копируете их себе. Также там будут записи Cookie и User-Agent, их нужно скопировать по отдельности.

-3

5. В SiteAnalyzer настраиваете User-Agent, ставите такой, который имеет ваш браузер и отправляет на сайт. Кстати, здесь я устанавливаю мобильный пользователь-агент, предварительно настраивая его в десктопном браузере. Потому что иногда сайты мобильникам дают другой контент, или редиректят куда-нибудь. Google сканирует наши сайты с Андроида.

6. Настраиваете HTTP Headers, вставляете все хедеры, их будет около 15-20 шт. Сюда же добавляете куки.

7. Перейдите в настройку Основные. Здесь нужно снизить скорость сканирования. Я настраиваю Max Treads = 4 и Max URL/s = 1. Вы можете попробовать другие значения.

-4

8. Настройте остальную часть SiteAnalyzer, чтобы не сканировать лишние (не нужные вам) страницы и разделы сайта.

9. Запускаете скан и получаете отчеты!

После примерно каждые 1000 запросов Cloudflare проверяет пользователя и изменяет куку. Будьте готовы просмотреть в отчетах Client Error. На этом этапе нужно остановить скан, открыть сайт в том же Chrome (желательно его не закрывать), будет повторная верификация, скопировать новую куку и вставить в Frog. Далее можно успешно продолжить сканирование.

Если вы работаете со своим сайтом, лучше настроить Cloudflare таким образом, чтобы ваш IP он не блокировал, и не танцевать со всеми, что вы прочитали выше.

Надеемся, информация по работе SiteAnalyzer окажется вам полезна.