Вход Регистрация

Парсинг

Юзер-агенты для веб-скрапинга: Что это такое и как использовать

Строка агента пользователя помогает определить браузер, тип устройства и операционную систему при скраппинге. Узнайте больше в статье.

Команда Froxy 6 июн 2024 4 мин
Юзер-агенты для веб-скрапинга: Что это такое и как использовать

Когда ваш парсер обходит страницы, он должен как-то представиться сайту. За имя клиентского приложения отвечает параметр user-agent. От него могут зависеть различные опции дизайна и прочее. Но многие крупные сайты используют значения строки user-агента в первую очередь для организации защиты от злонамеренных действий, в том числе для блокировки парсинга.

Ниже расскажем, что такое пользовательские агенты и как сделать так, чтобы парсер не блокировался антифрод-системами.

Что такое User-агенты?

User Agent – это текстовый идентификатор, который программное обеспечение отправляет внутри HTTP-запросов при организации подключений к сайтам или web-сервисам.

Если по-простому, то это условное имя браузера или другой программы: поискового бота, паука и т.п.

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

  • Актуальная версия Google Chrome (v 124), работающая на ПК под управлением ОС Windows, представляется так – «Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/124.0.0.0 Safari/537.36»
  • Браузер Firefox – «Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:121.0) Gecko/20100101 Firefox/121.0»
  • Chrome, но уже на мобильных устройствах – «Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/124.0.0.0 Mobile Safari/537.36»
  • Основной поисковый робот Яндекса – «Mozilla/5.0 (compatible; YandexBot/3.0; +http://yandex.com/bots) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/81.0.4044.268»
  • Поисковый бот Google – «Mozilla/5.0 (compatible; Googlebot/2.1; +http://www.google.com/bot.html)»
  • И т.д.

Можно заметить, что внутри строки юзер-агента передаётся сразу несколько параметров:

  • Текущая платформа (тип операционной системы, её разрядность и архитектура процессора, например, ARM, Win64, Linux и т.п.).
  • Разработчик браузера (Chrome, Safari, Mozilla).
  • Версия браузера (для мобильных или десктопов, номер сборки).

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

Если хотите больше подробностей, то на Wikipedia можно найти причины такой «похожести». Всё дело в том, что в период активной борьбы за рынок они пытались представляться браузерами конкурентов. В итоге современные строки user-agent могут содержать одновременно до 5 имён.

Немного статистики: какой user-agent выбрать для парсера

statisticsНемного статистики (какой user-agent выбрать для парсера)

По логике вещей, самым распространённым юзер-агентом будет тот, который используется на наибольшем числе устройств. На текущий момент это Google Chrome стабильной версии, работающий в ОС Android. По статистике Statcounter Андроидом пользуется свыше 43% всех пользователей сети.

Если говорить о десктопах, то тут безусловный лидер – Windows + тот же Chrome. Более 27% от всех устройств, имеющих выход в сеть.

Давно не меняющийся лидер среди всех браузеров, а значит и самый популярный user-agent – Google Chrome. От его имени отправляется более 65% всех интернет-запросов.

Итак, самые беспроигрышные варианты для указания в HTTP-запросах при тонкой настройке парсинга:

  • Для десктопов – Win64 + стабильная версия Хрома. На момент написания статьи это Chrome 124. То есть строка юзер-агента должна выглядеть так: «Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/124.0.0.0 Safari/537.36»
  • Для мобильных – Android + стабильная версия Хрома. Версии десктопного и мобильного браузера обычно совпадают. Строка юзер-агента будет выглядеть так: «Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/124.0.0.0 Mobile Safari/537.36»

Как и для чего используется User-Agent?

Как и для чего используется User-Agent?

Стоит ли упоминать, что user-agent – это один из самых важных параметров цифрового отпечатка?

Обратите внимание! Для стабильного парсинга без блокировок недостаточно подделать User-Agent, сайты могут собирать о клиентских браузерах/приложениях гораздо больше информации. Подробности в материале про лучшие практики парсинга. Например, могут пригодиться безголовые браузеры и качественные прокси.

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

  • Ведение статистики и сбор данных о посетителях сайта: какими браузерами они пользуются, на каких операционных системах работают и с каких гаджетов выходят в сеть. Чем лучше вы будете понимать свою аудиторию, тем качественнее контент сможете им предложить.
  • Таргетинг рекламы. Специальные небольшие баннеры можно показывать только владельцам Android-устройств или тем, кто работает с iOS. Большие баннеры лучше показывать только на десктопах и т.п.
  • Оптимизация дизайна. Каждый тип устройства может получать ту версию сайта, которая лучше всего для него подходит. На версию браузера можно завязать отдельные CSS-свойства и персонализировать контент.
  • Обнаружение вредоносного трафика и блокировка ботов. Многие крупные сайты открыто запрещают массовые запросы и стараются исключить из общего потока боты и парсеры, создающие паразитную нагрузку. User-agent при этом играет важную роль, так как именно он отвечает за идентификацию клиентского ПО. В зависимости от полученных параметров пользовательского агента могут запускаться те или иные скрипты безопасности.

Нужно ли использовать user-agent при парсинге?

Конечно нужно. Если вы будете отправлять запросы к сайту не представившись, то это будет первый сигнал для блокировки паразитного трафика.

Тут скорее вопрос в том, как и кем представиться:

  • Многие сайты сознательно запрещают обход страниц ботами и поисковыми пауками (подробнее о разнице между парсингом и web-краулингом). Сайты могут блокировать посещения только конкретным ботам, а могут вести белый список (то есть запрещать краулинг всем, кроме списка избранных).
  • Если прописать чужое имя бота, то принадлежность легко может быть проверена за счёт обратных запросов – при анализе IP-адресов на соответствие принадлежности к доменным именам. Например, тот же Yandex официально описывает процедуру проверки.
  • Если представиться популярным браузером пользователя, то могут инициироваться дополнительные средства проверки цифровых отпечатков – наличие поддержки JavaScript, параметры юзерагента в JavaScript-окружении (оно прописывается отдельно от строки в HTTP-запросе, запрашивается через функцию window.navigator.userAgent), набор шрифтов, куки и т.п.
  • Если представиться устаревшим браузером, то это будет одним из наиболее вероятных атрибут парсера.
  • Если версия браузера будет придуманной (несуществующей), то бан можно получить просто так.
  • И т.д.

Лучшие практики и рекомендации – как избежать блокировки по user-агенту

Лучшие практики и рекомендации – как избежать блокировки по user-агенту

Совет 1. Используйте user agent, соответствующий вашему реальному устройству.

Всё дело в том, что реальную операционную систему и аппаратную платформу можно проверить разными способами. Продвинутые антифрод-системы могут сверять списки предустановленных шрифтов. Естественно, в Linux-системах и на MacOS разные дефолтные шрифты. С очень большой вероятностью внутри бесплатного дистрибутива Ubuntu не окажется проприетарных шрифтов, защищённых авторскими правами Microsoft.

Не менее интересный приём – HTML5 Canvas-отпечатки. С помощью встроенных средств браузера на странице рисуются определённые элементы. В разных операционных системах отрисовка происходит по-разному. Соответственно, собирая цвета из определённых участков страницы, можно проверить соврал пользователь в своём юзер-агенте или нет.

По аналогии могут применяться скрипты, проверяющие платформу на основе других технологий: WebGL, WebRTC и т.п.

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

Тоже интересный момент: внутри user-агента лучше всего прописать версию браузера, отстающую от текущей стабильной ветки не более чем на 2 версии.

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

Команды программистов крупнейших web-сайтов и сервисов могут использовать такой признак для выявления подозрительного трафика.

Плюс, многие антидетект-браузеры работают на старых версиях Chromium. Это ли не повод детальнее присмотреться к подключившимся клиентам?

Совет 3. Ротируйте IP-адреса и отпечатки

Чтобы точнее выявить проблемные запросы, антифрод-системам нужно время. Например, они могут засекать задержки между запросами с одного IP-адреса, могут сравнивать идентификаторы, прописанные в cookies, а анализировать строки с user-агентами.

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

Защитные механизмы просто не успевают сработать.

Выводы

User-агент для парсинга

Анализ пользовательского агента – это основа многих защитных систем и механизмов на крупных сайтах. Да, только одного user-агента бывает недостаточно, поэтому параметр изучается вкупе с другими данными: куки, HTML5-canvas, WebGL и пр.

Указывать user agent при парсинге нужно обязательно, но делать это нужно правильно, чтобы антифрод-системы не могли найти изъянов.

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

Качественные мобильные и резидентные прокси можно купить у нас. Froxy – это более 8 млн. IP с таргетингом до уровня города. Оплачивается только трафик, количество параллельных подключений может быть любым (до 1000 портов в одни руки).

Получайте уведомления о новых функциях и обновлениях Froxy

Узнайте первыми о новых функциях Froxy, чтобы оставаться в курсе событий происходящих на рынке цифровых технологий и получать новости о новых функциях Froxy.

Статьи по Теме

Парсим как профи! Лучшие практики для веб-скрапинга без блокировок

Парсинг

Парсим как профи! Лучшие практики для веб-скрапинга без блокировок

Веб-скрапинг - полезная техника сбора данных с веб-сайтов, но при неправильном подходе она может легко привести к блокировке. В этом гайде описаны...

Команда Froxy 14 дек 2023 6 мин
Что такое парсинг данных. Определение и преимущества

Кейсы

Что такое парсинг данных. Определение и преимущества

Узнайте больше о том, что такое парсинг данных. Как работает парсер данных и законно ли его использовать, а также недостатки данного процесса - все...

Команда Froxy 29 июн 2023 6 мин