Когда ваш парсер обходит страницы, он должен как-то представиться сайту. За имя клиентского приложения отвечает параметр user-agent. От него могут зависеть различные опции дизайна и прочее. Но многие крупные сайты используют значения строки user-агента в первую очередь для организации защиты от злонамеренных действий, в том числе для блокировки парсинга.
Ниже расскажем, что такое пользовательские агенты и как сделать так, чтобы парсер не блокировался антифрод-системами.
User Agent – это текстовый идентификатор, который программное обеспечение отправляет внутри HTTP-запросов при организации подключений к сайтам или web-сервисам.
Если по-простому, то это условное имя браузера или другой программы: поискового бота, паука и т.п.
Примеры пользовательского агента:
Можно заметить, что внутри строки юзер-агента передаётся сразу несколько параметров:
Наиболее внимательные читатели заметят, что строки User-агентов у разных браузеров очень похожи, но есть у них и отличия. Как раз по этим отличиям сайты и определяют тип браузера.
Если хотите больше подробностей, то на Wikipedia можно найти причины такой «похожести». Всё дело в том, что в период активной борьбы за рынок они пытались представляться браузерами конкурентов. В итоге современные строки user-agent могут содержать одновременно до 5 имён.
По логике вещей, самым распространённым юзер-агентом будет тот, который используется на наибольшем числе устройств. На текущий момент это Google Chrome стабильной версии, работающий в ОС Android. По статистике Statcounter Андроидом пользуется свыше 43% всех пользователей сети.
Если говорить о десктопах, то тут безусловный лидер – Windows + тот же Chrome. Более 27% от всех устройств, имеющих выход в сеть.
Давно не меняющийся лидер среди всех браузеров, а значит и самый популярный user-agent – Google Chrome. От его имени отправляется более 65% всех интернет-запросов.
Итак, самые беспроигрышные варианты для указания в HTTP-запросах при тонкой настройке парсинга:
Стоит ли упоминать, что user-agent – это один из самых важных параметров цифрового отпечатка?
Обратите внимание! Для стабильного парсинга без блокировок недостаточно подделать User-Agent, сайты могут собирать о клиентских браузерах/приложениях гораздо больше информации. Подробности в материале про лучшие практики парсинга. Например, могут пригодиться безголовые браузеры и качественные прокси.
Ниже опишем наиболее популярные задачи, которые позволяет решить анализ строк с пользовательским агентом:
Конечно нужно. Если вы будете отправлять запросы к сайту не представившись, то это будет первый сигнал для блокировки паразитного трафика.
Тут скорее вопрос в том, как и кем представиться:
Совет 1. Используйте user agent, соответствующий вашему реальному устройству.
Всё дело в том, что реальную операционную систему и аппаратную платформу можно проверить разными способами. Продвинутые антифрод-системы могут сверять списки предустановленных шрифтов. Естественно, в Linux-системах и на MacOS разные дефолтные шрифты. С очень большой вероятностью внутри бесплатного дистрибутива Ubuntu не окажется проприетарных шрифтов, защищённых авторскими правами Microsoft.
Не менее интересный приём – HTML5 Canvas-отпечатки. С помощью встроенных средств браузера на странице рисуются определённые элементы. В разных операционных системах отрисовка происходит по-разному. Соответственно, собирая цвета из определённых участков страницы, можно проверить соврал пользователь в своём юзер-агенте или нет.
По аналогии могут применяться скрипты, проверяющие платформу на основе других технологий: WebGL, WebRTC и т.п.
Совет 2. Используйте актуальные стабильные версии браузеров.
Тоже интересный момент: внутри user-агента лучше всего прописать версию браузера, отстающую от текущей стабильной ветки не более чем на 2 версии.
Дело в том, что устаревшие версии браузеров исключаются из списка поддерживаемых многими разработчиками. Продолжая пользоваться старым браузером, вы рискуете пострадать из-за отсутствия совместимости и поддержки актуальных веб-стандартов.
Команды программистов крупнейших web-сайтов и сервисов могут использовать такой признак для выявления подозрительного трафика.
Плюс, многие антидетект-браузеры работают на старых версиях Chromium. Это ли не повод детальнее присмотреться к подключившимся клиентам?
Совет 3. Ротируйте IP-адреса и отпечатки
Чтобы точнее выявить проблемные запросы, антифрод-системам нужно время. Например, они могут засекать задержки между запросами с одного IP-адреса, могут сравнивать идентификаторы, прописанные в cookies, а анализировать строки с user-агентами.
Меняя цифровые отпечатки в паре с IP-адресами, вы подключаетесь к целевому сайту каждый раз как будто с нового устройства. По крайней мере, именно так это выглядит со стороны антифрод систем.
Защитные механизмы просто не успевают сработать.
Анализ пользовательского агента – это основа многих защитных систем и механизмов на крупных сайтах. Да, только одного user-агента бывает недостаточно, поэтому параметр изучается вкупе с другими данными: куки, HTML5-canvas, WebGL и пр.
Указывать user agent при парсинге нужно обязательно, но делать это нужно правильно, чтобы антифрод-системы не могли найти изъянов.
Помочь с обходом блокировок и с отправкой большого числа запросов к одному и тому же сайту могут ротационные прокси.
Качественные мобильные и резидентные прокси можно купить у нас. Froxy – это более 8 млн. IP с таргетингом до уровня города. Оплачивается только трафик, количество параллельных подключений может быть любым (до 1000 портов в одни руки).