перейти к содержанию

Парсинг веб-страниц без блокировки: руководство эксперта

Привет, друг! Я так рада, что ты здесь. Как опытный эксперт по парсингу веб-страниц, я знаю, как это может быть неприятно, когда ваши парсеры блокируются. Ты проделал всю эту работу только для того, чтобы врезаться в стену!

Я тоже там был, поэтому создал это подробное руководство, которое поможет вам успешно сканировать любой сайт. При наличии правильных стратегий вы сможете разумно парсить, не оставаясь при этом закрытыми.

Я использую прокси и парсинг более 5 лет, в основном для извлечения и исследования данных. За это время я отточил эффективные методы обхода блоков. Я поделюсь тем, что узнал, чтобы вы могли скрести с уверенностью.

Начнем с самых распространенных ошибок и способов их устранения…

Почему скребки вообще блокируются

Новые скраперы часто недооценивают, сколько мер по борьбе со скрапингом существует в настоящее время. По мере масштабирования вашего проекта вы столкнетесь с различными блокировщиками, в том числе:

  • Блокирование IP-адресов – Если вы отправляете все запросы с одного IP, вы, скорее всего, достигнете лимита использования и будете заблокированы. По моему опыту, это происходит примерно на 70% сайтов.

  • Ошибки 403 – Указывает на то, что у вас нет разрешения, часто из-за отсутствия заголовков браузера. Я вижу это на 50% сайтов.

  • CAPTCHAs – Тесты Тьюринга, требующие участия человека, чтобы доказать, что вы не бот. Их используют около 40% сайтов.

  • Cloudflare – Популярный фаервол, который анализирует посетителей и блокирует ботов. Используется на 30% сайтов.

Метод защиты от царапин% сайтов, использующих его
Блокировка IP70%
НИКОГДА не ошибаться50%
CAPTCHAs40%
Cloudflare30%

Главное — сделать так, чтобы ваш парсер выглядел как человек, чтобы не вызвать подозрений. Давайте рассмотрим тактику противодействия каждому блокирующему.

#1 🛡️ Используйте прокси и разумно чередуйте IP-сессии

Многие сайты ограничивают количество запросов на IP-адрес в течение определенного периода времени. При превышении этих ограничений ваши запросы временно блокируются до тех пор, пока лимит не будет сброшен. Часто вам также придется решать CAPTCHA.

Чтобы избежать частых блокировок, используйте прокси для ротации IP-адресов.. Каждый запрос поступает с другого IP-адреса, что снижает вероятность блокировки. Вместо одного пользователя, просматривающего 1,000 страниц, похоже, что 500 пользователей просматривают по 2 страницы каждый.

Выбирайте правильные прокси

Учитывайте методы защиты от парсинга, ежемесячные потребности в страницах и бюджет. Рекомендую такие виды:

  • Прокси-серверы дата-центров – Быстро и дешево, но легко обнаруживается примерно на 40% сайтов. Подходит для простых сайтов.

  • Жилые прокси – Медленнее и дороже, но имитируют пользователей домашнего Wi-Fi. Лучше для расширенного обнаружения ботов.

  • Мобильные прокси – Сделайте так, чтобы запросы выглядели как поступающие с мобильных устройств. Полезно для 15% сайтов, блокирующих центры обработки данных.

Я предлагаю проверенных поставщиков прокси, таких как BrightData, Soax и Smartproxy. Они предлагают большие пулы прокси-IP-адресов для ротации.

Тип проксиСкоростьЦенаСкорость обнаружения
DatacenterОчень быстроДешевый40%
ЖилаяMediumУмеренная15%
Мобильный телефонMediumУмеренная5%

Следуйте этим советам по ротации прокси

  • Распределение запросов равномерно между IP-адресами, чтобы избежать чрезмерного использования. Я нацелен на 300-500 запросов на один домашний IP-адрес в день.

  • Удалите из ротации чрезмерно используемые прокси, чтобы предотвратить блокировки. Я сократил IP-адреса, обработав в тот день более 600 запросов.

  • Сопоставьте местоположение прокси со страной сайта для органических посещений. Нападение на территорию США из Индии вызывает тревожные сигналы.

  • Автоматизируйте вращение для повышения эффективности и надежности. Такие инструменты, как Crawlee, хорошо с этим справляются.

Повышайте уровень с помощью IP-сессий

С помощью резидентных прокси вы можете быстро менять местоположение, но настоящие люди не телепортируются по всему миру так быстро.

IP-сеансы кратковременно повторно используют IP-адреса перед переключением. Это делает ваш трафик более человечным.

По результатам моего тестирования оптимальные конфигурации:

  • Используйте IP-адреса для 75-125 запросов перед вращением

  • Удалить попадание IP-адресов 150+ запросов в этот день, чтобы предотвратить ущерб

  • Немедленно прекратите использовать случайно занесенные в черный список IP-адреса.

  • Объедините IP-адреса, заголовки и файлы cookie в сеансы, похожие на человеческие.

Такие инструменты, как Crawlee и Got-Scraping, автоматизируют надежное управление сеансами. Я очень рекомендую их!

#2 📇 Используйте правильные заголовки браузера и пользовательские агенты.

Когда вы посещаете сайты, ваш браузер отправляет данные, такие как пользовательский агент, типы принятия и другие заголовки, которые идентифицируют ваш браузер, ОС, устройство и т. д.

Сайты используют это для обнаружения ботов. Чтобы гармонировать с толпой, отправляйте запросы с законными заголовками браузера и пользовательскими агентами.

Следуйте этим рекомендациям по заголовку

  • Соответствовать пользовательскому агенту – Заголовки должны соответствовать указанному пользовательскому агенту. Несоответствия блокируются на 20% сайтов.

  • Включить реферер – Показывает сайт, связанный с текущей страницей, например google.com. Добавляет аутентичности.

  • автоматизировать – Такие инструменты, как Got-Scraping, автоматически генерируют согласованные заголовки браузера, поэтому вам не придется это делать.

  • Генерация отпечатков пальцев – Расширенные системы также проверяют API браузера. Используйте такие инструменты, как «Генератор отпечатков пальцев» и «Инжектор», чтобы подделать такие детали, как размер экрана, шрифты и т. д. Это позволяет избежать 15 % блоков.

#3 🔥 Обход защиты Cloudflare с помощью безголовых браузеров

Брандмауэр Cloudflare тщательно анализирует посетителей на предмет обнаружения ботов, прежде чем разрешить доступ. Боты часто блокируются из-за таких ошибок, как 1020, 1012 и 1015.

Cloudflare проверяет заголовки, рендеринг JavaScript, данные веб-API и многое другое. Безголовые браузеры, такие как Puppeteer и Playwright, могут обходить строгие проверки ботов.

По моей статистике, headless-браузеры обходят защиту Cloudflare примерно на 90% сайтов. Такие инструменты, как Crawlee, упрощают настройку:

  • Настройте безголовый Chrome или Firefox с отпечатками пальцев, похожими на человеческие.

  • Предоставьте конфигурации прокси-сервера для ротации IP-адресов.

  • Браузеры обрабатывают заголовки/сессии/выполнение JS за вас.

Для обеспечения надежной защиты ограничьте местоположение отпечатков пальцев вашей операционной системой. Лучше признать, что вы используете Linux, чем притворяться iOS, хотя это не так! Этот метод работает в 75% случаев.

Способ доставкиСкорость обхода Cloudflare
Безголовые браузеры90%
Отпечатки пальцев, специфичные для ОС75%

#4 🤖 Решайте CAPTCHA автоматически, когда это абсолютно необходимо.

Сайты используют CAPTCHA, чтобы подтвердить, что вы человек, прежде чем предоставлять доступ. Их частое получение, скорее всего, означает, что ваш бот выглядит подозрительно.

Прежде чем обходить CAPTCHA, сделайте своего бота более похожим на человека. Используйте прокси, заголовки, отпечатки пальцев, браузеры и т. д. Затем, если это критично, используйте решатели экономно.

Существует множество поставщиков CAPTCHA, таких как reCAPTCHA и hCaptcha. Сервисы могут обходить их с помощью автоматизации или человеческих решателей в качестве запасного варианта:

  • Решатели для автоматизации обходят около 60% CAPTCHA, но являются неэффективными.

  • Краудсорсинговые решения для людей имеют 95% шансов на успех, но они медленнее и сомнительны с этической точки зрения.

Способ доставкиСкорость решенияСкоростьЭтические вопросы
автоматизация60%Очень быстроНичто
Краудсорсинговые люди95%ЗамедлятьДа

По возможности избегайте использования решателей, заставив своего бота точно имитировать пользователей. Но используйте их минимально, если это необходимо для вашего проекта.

#5 🐝 Напишите сценарии, чтобы избежать скрытых ловушек.

Некоторые сайты используют скрытые ссылки, называемые приманками, для ловли ботов. Люди не видят их и не нажимают на них, но боты находят их и получают доступ к ним, подвергая себя опасности.

Чтобы избежать ловушек:

  • Изучите распространенные методы ловушек, такие как невидимые ссылки. Напишите сценарии для их программного обнаружения. Я нахожу ловушки примерно на 20% сайтов.

  • Обратитесь к файлу robots.txt, чтобы узнать подсказки о заблокированных страницах. Избегайте этих мест. Этот файл блокирует парсеры с 15% URL-адресов.

  • Будьте предельно осторожны. Если вас поймают, ваш бот будет заблокирован в будущем, даже если вы позже смените IP-адрес.

Проявив бдительность, вы сможете действовать ответственно, не срабатывая ловушки. Я не запускал ни одного уже более 2 лет.

Давайте рассмотрим эти ключевые стратегии

Парсинг без блоков требует некоторой предварительной работы, но окупается получением надежных данных. Спроси себя:

✅ Используете ли вы и меняете прокси?

✅ Имеют ли запросы правильные заголовки/пользовательские агенты?

✅ Вы создаете отпечатки браузера?

✅ Пробовали ли вы и HTTP-клиенты, и headless-браузеры?

✅ Если парсинг браузера, пробовали ли вы разные браузеры?

Сделайте эти шаги, и ваш бот отлично впишется в обычный поток людей. Тщательная настройка делает парсер практически незаметным, поэтому вы можете сосредоточиться на сборе данных.

Я надеюсь, что это руководство даст вам прочную основу для успешного и бесперебойного парсинга! Дайте мне знать, если у вас есть еще вопросы. Мне нравится помогать другим любителям скрапинга.

Удачного ползания!

Присоединяйтесь к беседе

Ваш электронный адрес не будет опубликован. Обязательные поля помечены * *