В быстро меняющемся ландшафте веб-скрапинга и анти-скрапинговых технологий современные методы, такие как подмена User-Agent и обход JavaScript, больше не обеспечивают достаточной защиты от всё более изощрённых механизмов обнаружения. По мере того как всё больше веб-сайтов переходят на эффективный протокол HTTP/2, HTTP/2-фингерпринтинг незаметно превратился в мощное анти-скрапинговое оружие.
В этой статье вы узнаете:
Внимательно читайте и узнайте больше!
HTTP/2 — это второе поколение протокола HTTP. С момента его выпуска в 2015 году его приняла примерно половина всех веб-сайтов. Например:
Вы можете проверить, использует ли запрос HTTP/1.1 или HTTP/2 (h2), нажав F12 в вашем браузере и посмотрев на вкладку «Сеть».
HTTP/2 улучшает производительность загрузки страниц за счёт множественного использования соединений, сжатия заголовков (HPACK) и повторного использования соединений. В отличие от последовательной природы HTTP/1.1, HTTP/2 обрабатывает несколько запросов и ответов одновременно по одному соединению.
Основные функции включают:
HTTP/2-фингерпринтинг — это метод, который идентифицирует клиентов, анализируя небольшие различия в их поведении при использовании протокола HTTP/2. Эти различия часто заключаются в способе реализации протокола. Разные браузеры, библиотеки скрапинга и инструменты автоматизации выдают уникальные характеристики на низком уровне.
Проще говоря:
Вместо того чтобы идентифицировать вас по вашему User-Agent, он наблюдает за тем, как ваш клиент ведёт себя на уровне HTTP/2, чтобы определить, являетесь ли вы «скриптом, притворяющимся браузером».
HTTP/2 передаёт бинарные фреймы, которые включают различные поля.
Каждый клиент реализует эти фреймы — значения, порядок, комбинации — по-разному. Анти-скрапинговые системы создают базы данных отпечатков пальцев на основе этого, чтобы идентифицировать:
requests + httpx
PythonВы можете просмотреть свой собственный HTTP/2-отпечаток пальца на странице тестирования HTTP/2 BrowserLeaks.
Общие индикаторы отпечатков пальцев включают:
Поскольку HTTP/2-фингерпринтинг глубоко погружается в протокольный уровень, его гораздо сложнее подделать, чем обнаружение на основе User-Agent или JavaScript. Анализируя фрейм SETTINGS, порядок фреймов, обновления окон и фреймы приоритета, серверы могут точно определить, используете ли вы инструмент скрапинга.
Ещё хуже то, что обнаружение часто происходит ещё до отправки тела вашего запроса — это означает, что вас могут заблокировать до отправки любых данных.
Фингерпринтинг браузера использует JavaScript на стороне клиента для анализа версии браузера, плагинов, шрифтов и многого другого. HTTP/2-фингерпринтинг, напротив, фокусируется на низкоуровневых деталях протокола, таких как порядок фреймов SETTINGS, размер окна и параметры приоритета. Они связаны с ОС, библиотеками TLS и поведением на уровне ядра — что делает их гораздо сложнее подделывать.
В результате HTTP/2-фингерпринтинг более скрытный и сложнее обойти, чем фингерпринтинг браузера.
Можем ли мы действительно обойти его?
Да! Просто узнайте больше из наших следующих 6 методов.
Управляйте реальным браузером Chromium с помощью Puppeteer или Playwright. Его стек HTTP/2 и TLS-handshake по своей природе имитируют поведение человека, что затрудняет обнаружение.
TLS-handshake включает в себя ряд шагов, позволяющих клиенту и серверу аутентифицироваться и согласовать стандарты шифрования перед передачей данных.
Рекомендуемая настройка:
--enable-features=NetworkServiceInProcess
для принудительного использования собственного HTTP/2puppeteer-extra-plugin-stealth
Плюсы: Врождённое поведение, подобное человеческому
Минусы: Высокое потребление ресурсов, ограниченная пропускная способность скрапинга
Для высокой параллельности вы можете вручную создать клиента HTTP/2, который имитирует поведение браузера — от TLS-handshake до начальной структуры фрейма.
Основные моменты симуляции:
:authority
и host
Рекомендуемые инструменты: undici
, http2-wrapper
, hyper
, curl
, nghttp2
Плюсы: Высокая производительность, лёгкость
Минусы: Чрезвычайно сложно в реализации; требует глубоких знаний протокола
Используйте прокси-сервер промежуточного уровня, который преобразует стандартные запросы в запросы с характеристиками, подобными браузеру — например, TLS-Proxy.
Как это работает:
httpx
или подобноеЭкспортируйте NetLog или захватывайте трафик с помощью Wireshark для регистрации взаимодействий HTTP/2 реального браузера, а затем воспроизводите эти сессии.
Рекомендуемые инструменты: nghttp2
, h2
, chrome://net-export
, Wireshark
Плюсы: Почти идеальная эмуляция реальных запросов
Минусы: Сложный процесс, лучше всего подходит для использования в небольшом масштабе
Перед согласованием HTTP/2 браузер выполняет TLS ClientHello handshake, который также генерирует отпечаток пальца.
Рекомендуемые инструменты:
tls-client
(Node.js)uTLS
(Go)mitmproxy
(Python)Убедитесь, что конфигурации TLS и ALPN соответствуют целевому браузеру для полного маскировки.
Если вы ищете стабильное, эффективное и практически не обнаруживаемое решение для скрапинга, Browserless от Nstbrowser — облачный браузерный сервис — является одним из лучших доступных вариантов.
Основные преимущества Browserless включают:
Browserless имеет встроенные мощные возможности борьбы с ботами и разблокировки. Он использует реальные отпечатки пальцев браузера и поведение, подобное человеческому, для лёгкого обхода обнаружения на уровне браузера и HTTP.
Получите свою бесплатную пробную версию прямо сейчас!
HTTP/2-фингерпринтинг стал незаменимой анти-бот технологией следующего поколения. Традиционные подходы, такие как использование только подмены user-agent или обхода JavaScript, больше не являются полностью эффективными. Чтобы выделиться в современных анти-бот системах, правильная стратегия требует всесторонней эмуляции — от стека протоколов и TLS до поведения браузера.
Если вы ищете высокопроизводительное, низкорискованное решение для обхода, Nstbrowser Browserless обеспечивает наиболее реалистичные возможности эмуляции, доступные в настоящее время. Это первый выбор для инженеров по данным, специалистов по росту и исследователей безопасности.