Новые вопросы с меткой [useragent]
Задать вопрос
Руководство по использованию метки useragent отсутствует.
- Подробнее…
- Лучшие участники
- Синонимы
18 вопросов
Новые
Текущие
Конкурсные
Неотвеченные
Фильтрация Без ответов0 голосов
0 ответов
17 показов
python selenium использование старых user-agent
Python 3. 10.4 Selenium 4.9.0 Нашёл список user-agent для chrome. Хотел каждому аккаунту присвоить свой user-agent. Пошел по возрастанию версии chrome. Страница авторизации грузится быстро, в версии …
- python
- python-3.x
- selenium
- useragent
0 голосов
0 ответов
40 показов
Python Парсинг Помогите пожалуйста правильно настроить
import requests from bs4 import BeautifulSoup from fake_useragent import UserAgent url_site = «» ua = UserAgent(verify_ssl=False) headers = {‘Content-Type’: ‘text/html’, ‘accept’: ‘*/*’, ‘…
- requests
- bs4
- useragent
0 голосов
1 ответ254 показа
Как возможно обойти ошибку <Response [429]> [закрыт]
Всем привет , писал парсер для вещей из cs, но на этапе парсинга выдает ошибку <Response [429]> как возможно обойти данную ошибку , попробовал через fake user agent , ? в файле Json находиться . ..
- python
- парсер
- requests
- bs4
- useragent
0 голосов
0 ответов
333 показа
Сайт ЦБ РФ перестал парситься
Имеется следующая функция: def get_ruonia(): url = ‘https://cbr.ru/hd_base/ruonia/dynamics/’ headers = {‘User-Agent’: ‘Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like …
- python
- requests
- bs4
- useragent
1 голос
1 ответ66 показов
Агент для дискорда
Ку, Хочу спросить у вас , может кто знает есть ли либа для дискорда которая позволит управлять аком важно акком а не ботом , в идеале что-то типа telethon’a но для дискорда
- python
- discord
- useragent
0 голосов
3 ответа126 показов
Ретаргетинг сайта по странам и роботы ПС Яндекса и Гугла как реализовать?
На сайте 3 страницы site. ru site.ru/ru/ site.ru/en/ При заходе на первую страницу идет определение страны пользователя и перенаправление в зависимости от местоположения таким образом: На главной …
- php
- seo
- геолокация
- useragent
- geo
0 голосов
2 ответа
267 показов
Проверка user-agent
Возникла необходимость проверить, откуда пользователь делает запрос, чтобы определить, каким способом дать ему ответ(дать html в браезер или JSON в, например, curl). Знаю, что html можно дать и в …
- golang
- useragent
-2 голоса
1 ответ491 показ
Python selenium, fake-useragent, не работает random
Ошибка: options. add_argument(f»user-agent={UserAgent.random}») AttributeError: type object ‘FakeUserAgent’ has no attribute ‘random’ Код: from selenium import webdriver import time import …
- python
- selenium
- useragent
0 голосов
1 ответ155 показов
java.lang.RuntimeException: java.lang.reflect.InvocationTargetException
Это мой метод для запроса на сервер, использую user-agent. Не понимаю из-за чего выходит ошибка и как ее исправить(не на что не ссылается) private fun makeUpURL(url: String) { val timeZone …
- android
- android-studio
- kotlin
- http
- useragent
0 голосов
1 ответ238 показов
Как получить user-agent с client session в python
Имею код: import asyncio from aiohttp import ClientSession headers = { ‘User-Agent’: ‘example’, } async def send_request(headers): async with ClientSession() as session: async with .
..- python
- aiohttp
- useragent
0 голосов
1 ответ5k показов
Как обойти HTTP Error 429?
Я столкнулся с проблемой,а именно с обходом ограничения запроса в данной ссылке https://www.instagram.com/’+ parse +’/?__a=1′.Я пробовал обойти через подмену User-agent,но у меня ничего не получилось …
- python
- json
- useragent
3 голоса
5 ответов
10k показов
Как скрыть, что ты зашел через selenium?
Использую chromedriver. Как скрыть от сайта, что ты зашел на него при помощи Selenium?
- python
- python-3.x
- парсер
- selenium
- useragent
4 голоса
1 ответ306 показов
Как пользоваться user-agent?
Мне стало интересно — как получить из user-agent только тот браузер, из которого я получаю информацию? Пишу : let ua = window.navigator.userAgent; Проверяю : console.log(ua) Получаю список : «…
- javascript
- useragent
0 голосов
1 ответ
117 показов
Хочу поменять useragent через селениум, но не получается
Вот мой код, что тут не так? from selenium import webdriver from fake_useragent import UserAgent user=UserAgent() profile=webdriver. FirefoxProfile() profile.set_preference(‘general.useragent.override’…
- python
- парсер
- selenium
- useragent
0 голосов
0 ответов
10 показов
Если UserAgent = ‘Mozilla’, значит это бот (скрипт)?
Если значение UserAgent на сервере точно соответствует значению «Mozilla» можно это считать фиктивным запросом (ботом, скриптом и т.д) ?
- бот
- mozilla
- useragent
на странице
Описание настроек — раздел Юзер Агенты (ОБЯЗАТЕЛЬНО) — Документация vkaccountsmanager Perfect.Studio
Просим Вас очень внимательно прочитать данный раздел
(если Вам важны Ваши аккаунты).
ЮзерАгент (UserAgent) — это строка, некая подпись браузера, в которой прописана информация о нем:
- название браузера (Google Chrome, Firefox, Yandex Browser…)
- версия браузера (69, 70, 78…)
- операционная система, на которой браузер работает (Windows, Mac OS, Linux…)
- версия операционной системы
- и прочая, менее важная информация
Итак, что Вам обязательно нужно знать:
- Любой сайт видит как минимум операционную систему пользователя, название его браузера и версию браузера.
- Браузеры постоянно обновляются и в их ЮзерАгентах как минимум увеличивается версия браузера.
- Наша программа имеет встроенные (общие) ЮзерАгенты, которые мы обновляем по мере необходимости.
- Однако, мы настоятельно не рекомендуем Вам использовать встроенные (общие) ЮзерАгенты, так как на них производится очень много различной массовой активности во ВКонтакте: регистрация новых аккаунтов, разморозка старых аккаунтов, активация аккаунтов, рассылка личных сообщений, добавление в друзья, и многое, многое другое.
- Внимание ВКонтакте к встроенным в программу ЮзерАгентам всегда будет повышено и если Вы используете общие ЮзерАгенты, то у Ваших аккаунтов возрастает вероятность получить вечный бан\временную заморозку как при создании аккаунта, так и при авторизации во ВКонтакте, да и просто при любой другой активности.
- Мы рекомендуем Вам собрать список из ЮзерАгентов от Ваших браузеров, а итоговый список уже дать программе, чтобы аккаунты работали на Ваших ЮзерАгентах.
- Если Вы сегодня получили ЮзерАгент от Вашего браузера Google Chrome и вставили его в программу, то через месяц этот ЮзерАгент уже будет считаться «не свежим», а условно через 2 месяца, аккаунты вообще могут получить из-за него вечные баны. Мы рекомендуем постоянно обновлять свои ЮзерАгенты до актуальных версий браузеров, условно 1 раз в неделю будет идеально.
Что нужно сделать?
- Откройте в программе Настройки, а в них вкладку Юзер Агенты, удалите все ЮзерАгенты из списка.
- Установите все возможные браузеры на свой компьютер, либо обновите текущие к последним версиям.
- В каждом браузере откройте ссылку: https://whatsmyua.info/
- Скопируйте строчку ЮзерАгента, которую отображает сайт.
- Вставьте в программу каждый новый ЮзерАгент с новой строчки.
- Закройте окно Настроек в программе — программа сохранила новый список из ЮзерАгентов.
- Если у Вас уже есть в программе аккаунты, которые ранее работали или сейчас работают на старых ЮзерАгентах, то остановите их работу, выделите такие аккаунты, нажмите на них правой кнопкой мышки и нажмите кнопку в выпадающем меню: Выделенные аккаунты->Очистить UserAgent.
При следующем запуске каждый из аккаунтов возьмет себе один из новых ЮзерАгентов.
А теперь, описание самого раздела ЮзерАгенты в программе:
В этом разделе Вы можете указать ЮзерАгенты, которые аккаунты программы будут использовать. Каждый аккаунт, если ему ЮзерАгент не указан изначально, выбирает случайный из списка.
Далее аккаунт запоминает ЮзерАгент и постоянно работает с него, пока ЮзерАгент аккаунта не будет изменен или удален вручную.
Также нажав на кнопку, Вы можете обновить ЮзерАгенты на актуальные из сайта.
Для ручного добавления ЮА или очистки, Вам нужно проделать следующие действия:
Поделиться
База данных агентов пользователей — WhatIsMyBrowser.com
Купить разовую копию базы данных агентов пользователей
В ходе эксплуатации whatismybrowser.com и нашего агенты. Эта база данных поддерживает наш список пользовательских агентов, а также внутреннюю систему, которую мы используем для разработки нашего парсера пользовательских агентов.
У нас есть огромное разнообразие пользовательских агентов, начиная от популярных браузеров и заканчивая очень редкими и малоизвестными браузерами; всевозможные боты и сканеры, телевизоры, консоли, киоски, встроенные браузеры и многое другое. Есть множество исторических данных, а также самые последние типы пользовательских агентов.
Теперь вы можете загрузить копию этой базы данных для собственного использования.
Наш последний дамп базы данных содержит:
219 351 311 пользовательских агентов
Купить сейчас — 50 австралийских долларов
Предоставляет доступ к нескольким форматам данных
назначение базы данных
База данных не предназначена для расшифровки/ парсинг пользовательских агентов; предназначен для поиска групп пользовательских агентов, которые соответствуют определенным критериям (например, «Найти пользовательские агенты для Chrome на планшетах Android», а не «Что делает это означает пользовательский агент?»).
Вы можете получить некоторые действительных результатов для популярных пользовательских агентов, используя базу данных таким образом, но, вообще говоря, пользовательские агенты имеют слишком много вариаций, чтобы когда-либо иметь «полный» список из них. Если вам нужно декодировать/анализировать пользовательские агенты, вы должны использовать наш API анализа пользовательских агентов, который даст вам гораздо лучшие результаты, а также дополнительные функции, недоступные в базе данных. требуется
Мы сделали этот процесс максимально быстрым и простым; вам даже не нужно регистрироваться у нас, просто подтвердите свой адрес электронной почты, совершите разовый платеж кредитной картой, и вы получите мгновенный доступ к нашей базе данных в трех различных форматах: MySQL, CSV, Parquet и Plain Text. .
Мы взимаем 50 австралийских долларов за последнюю выдержку из базы данных. Пожалуйста, ознакомьтесь с Условиями использования.
Когда будете готовы, начните с подтверждения адреса электронной почты.
В чем разница между базой данных и API?
База данных пользовательских агентов:
База данных представляет собой набор всех пользовательских агентов, которые мы собрали через веб-сайт и API. Дампы базы данных включают копии различных полей разбора (имя_программного обеспечения, имя_операционной_системы, тип_оборудования и т. д.), которые помогают при поиске, анализе данных и т. д. В нем много записей, но из-за природы пользовательских агентов он никогда не будет содержать всех существующих пользовательских агентов.
База данных не предназначена для декодирования/анализа пользовательских агентов, и мы не рекомендуем использовать ее для этого. Он предназначен для поиска типов пользовательских агентов на основе различных критериев (например, « Найти все пользовательские агенты для Chrome на iPad » или « Найти все Smart TV на базе Android ») или выполнить какую-либо обработку данных, машинное обучение и т. д.
API анализа пользовательского агента:
API отличается от базы данных — когда API генерирует ответ, он отправляет пользовательский агент, который вы отправляете, через серию сложных модулей кода, которые расшифровывают пользовательский агент и возвращают все различные поля (имя_программного обеспечения, имя_операционной_системы, тип_оборудования и т. д.). Он всегда будет возвращать ответ, содержащий как можно больше информации, даже если мы никогда раньше не видели пользовательский агент.
Если вы пытаетесь декодировать/разобрать пользовательский агент, используйте API. ..
Если вы ищете групп/типов пользовательских агентов, используйте базу данных.
Некоторые из наших клиентов хранят копии базы данных и пытаются использовать их для декодирования пользовательских агентов. Хотя теоретически вы можете сделать это с некоторым успехом, это никогда не будет так же хорошо, как использование конечной точки API синтаксического анализа пользовательского агента.
Не хотите скачивать? Вместо этого вы можете искать его через API.
Используйте наш интерфейс поиска по базе данных для запросов к нашему API вместо того, чтобы загружать и загружать огромный дамп базы данных. Зарегистрируйте учетную запись Pro или Enterprise, чтобы начать.
Одна покупка, несколько форматов данных
Мы предлагаем базу данных в четырех различных форматах; MySQL, переменные, разделенные запятыми (CSV), паркет и обычный текст; при покупке базы вы получаете доступ ко всем четырем форматам.
Между этими четырьмя форматами вы должны иметь возможность импортировать данные практически в любую систему баз данных. У нас также есть репозиторий скриптов для преобразования дампов в разные форматы. Если вас интересует другой формат; дайте нам знать.
Документация, часто задаваемые вопросы и проблемы
Прочтите нашу документацию по дампам базы данных.
Есть вопросы или проблемы? Вот наши часто задаваемые вопросы по базе данных.
Последний дамп базы данных
Последний дамп базы данных содержит 219 351 311 пользовательских агентов.
Пример данных
Вот несколько примеров дампов базы данных с первыми 10 000 строк реальных данных. Наши полные дампы имеют точно такой же формат/стиль, чтобы вы могли получить представление о том, что включено в покупку.
Выберите пример формата данных
Преобразование в другие форматы
Мы запустили репозиторий скриптов для преобразования дампов базы данных в другие форматы (например, Parquet). Пожалуйста, ознакомьтесь с нашей коллекцией скриптов для преобразования базы данных в различные форматы.
Данные синтаксического анализа и полезные метаданные включены
Наша база данных включает не только миллионы пользовательских агентов, каждая запись пользовательского агента также содержит все подробные данные синтаксического анализа пользовательского агента из нашего синтаксического анализатора мирового класса.
Это позволяет вам легко искать или классифицировать пользовательские агенты; по названию браузера, операционной системе, типу программного обеспечения (браузер, приложение, бот (краулер/анализатор/монитор и т. д.), типу оборудования (компьютер, мобильный (телефон/планшет и т. д.), сервер, носимое устройство, телевизор…))
Мы также укажите дату, когда наши системы впервые увидели каждый пользовательский агент, и последний раз, когда мы его видели. Мы также включаем количество просмотров каждого пользовательского агента, чтобы вы могли определить, является ли он очень популярным или редким. Мы также включаем отметку даты и времени, когда мы в последний раз обновляли информацию о синтаксическом анализе — полезно, если вы загружаете обновленную версию нашей базы данных в существующую копию; вам нужно только вставить обновленные записи.
Нужны регулярные копии базы данных? Вместо этого загрузите через наш API
База данных, к которой вы получаете доступ, представляет собой одноразовую копию — вы платите за нее и получаете текущую версию. Однако, если вам нужны регулярные еженедельные копии этой базы данных, вы можете использовать наш API для автоматического получения последнего URL-адреса дампа базы данных — тогда вы можете легко написать программное обеспечение для извлечения и загрузки его в вашу систему каждую неделю.
Пожалуйста, посетите нашу страницу функций API для получения дополнительной информации.
Обновляется еженедельно
Каждое утро воскресенья (UTC) мы создаем новую базу данных для загрузки. Последний дамп содержит 219 351 311 пользовательских агентов.
При текущих темпах мы добавляем около 600 000 новых агентов пользователей в неделю.
Предупреждение: он большой
Быстрое предупреждение: Microsoft Excel и Apple Numbers не могут обрабатывать такие большие наборы данных .
Поскольку файл CSV содержит сотни миллионов строк, большинство программ для работы с электронными таблицами (Microsoft Excel, Apple Numbers.app…) не могут импортировать и работать с таким количеством строк. Дамп базы данных размером 30 ГБ не представляет большой проблемы для среднего разработчика, но у некоторых клиентов, у которых нет доступа к надлежащей системе SQL для импорта данных и которые предпочитают работать на своих настольных компьютерах, определенно возникнут проблемы с файлами CSV, которые большой.
Пожалуйста, ознакомьтесь с нашими часто задаваемыми вопросами по базе данных, чтобы узнать о некоторых решениях, если вам действительно нужно работать с форматом CSV.
Дополнительные примечания
База данных, которую вы можете загрузить, была отфильтрована на наличие вредоносных, спамовых, непристойных или просто странных пользовательских агентов (некоторым людям нравится менять свои пользовательские агенты на глупые вещи, и мы стараемся предотвратить их включение в нашу систему сбора данных). ). Если вы видите что-то, что мы пропустили; дайте нам знать.
Для ясности: чтобы защитить частную жизнь каждого, база данных делает , а не включают IP-адреса людей и систем, которые использовали эти пользовательские агенты.
Есть вопросы? связаться. Мы всегда рады помочь.
Другие форматы баз данных?
Мы всегда рассматриваем другие форматы для предоставления базы данных. MSSQL и Postgres находятся в верхней части списка; однако в настоящее время системы, которые обрабатывают эти форматы, все еще могут импортировать либо дампы MySQL, либо необработанные CSV, поэтому, если вы используете MSSQL или Postgres, вы по-прежнему сможете использовать наши дампы. Если у вас есть какие-либо проблемы, просто дайте нам знать.
Готовы получить 219,4 миллиона записей пользовательского агента?
Купить сейчас
как это работает и как можно использовать
User-Agent является центральным элементом веб-архитектуры и играет важную роль в согласовании контента. Он был создан с явным намерением создать возможность по-разному обращаться к пользователям, отправляющим запросы к разным клиентам или «агентам», в зависимости от возможностей или контекста. Эта статья ответит на многие вопросы, которые могут возникнуть у вас по поводу пользовательских агентов, как они работают и как их можно использовать с парсером пользовательских агентов.
Что такое агент пользователя?
User-Agent (UA) — это буквенно-цифровая строка, идентифицирующая «агента» или программу, отправляющую запрос на веб-сервер для актива, такого как документ, изображение или веб-страница. Это стандартная часть веб-архитектуры, которая передается всеми веб-запросами в заголовках HTTP. Строка User-Agent очень полезна, потому что она сообщает вам довольно конкретную информацию о программном и аппаратном обеспечении, работающем на устройстве, которое делает запрос. Вы можете принимать важные решения о том, как обрабатывать веб-трафик на основе строки User-Agent, начиная от простой сегментации и перенаправления и заканчивая более сложными решениями по адаптации контента и таргетингу устройств.
Хотя User-Agent не идентифицирует конкретных лиц, он предоставляет разработчикам чрезвычайно мощный метод анализа и сегментации трафика. Эта информация, полученная непосредственно из самой строки User-Agent (процесс, известный как синтаксический анализ User-Agent), обычно включает браузер, механизм веб-рендеринга, операционную систему и устройство. Более глубокая информация может быть возвращена, когда строка User-Agent сопоставляется с дополнительным набором данных о базовом устройстве. Это подход, используемый решениями для обнаружения устройств, такими как DeviceAtlas.
Полное руководство по пользовательским агентам.
Загрузите нашу бесплатную электронную книгу по агентам пользователя, чтобы узнать:
- Что такое агент пользователя?
- Как их разбирать?
- Что с ними можно сделать?
Скачать бесплатное руководство
Анатомия пользовательского агента
Использование строки пользовательского агента указано в стандартах HTTP здесь RFC 1945 и снова здесь (RFC7231). Фактически, строка UA была частью стандарта HTTP с самой первой версии и с тех пор сохранялась в каждом обновлении, вплоть до HTTP 2.0. Эти стандарты дают рекомендации о том, что должно быть в строке User-Agent, а также описывают их назначение.
Поле заголовка «User-Agent» содержит информацию о User-Agent, инициирующем запрос, который часто используется серверами, чтобы помочь определить область сообщаемых проблем взаимодействия, обойти или адаптировать ответы, чтобы избежать конкретных ограничений User-Agent. , а также для аналитики использования браузера или операционной системы. User-Agent ДОЛЖЕН отправлять поле User-Agent в каждом запросе, если специально не настроено не делать этого.
Как он устроен определяется в степени:
User-Agent = product *( RWS ( product / comment ) )
Токены продукта объясняются более подробно следующим образом:
Значение поля User-Agent состоит из одного или нескольких идентификаторов продукта, за каждым из которых следует ноль или более комментарии (раздел 3. 2 [RFC7230]), которые вместе идентифицируют программное обеспечение User-Agent и его важные подпродукты. По соглашению идентификаторы продуктов перечислены в порядке убывания их важности для идентификации программного обеспечения User-Agent. Каждый идентификатор продукта состоит из имени и необязательной версии.
Токены продукта используются для того, чтобы обменивающиеся данными приложения могли идентифицировать себя по имени и версии программного обеспечения. Большинство полей, использующих токены продукта, также позволяют перечислять субпродукты, которые составляют значительную часть приложения, разделенные пробелом.
Каждый токен продукта включает название продукта и его версию, разделенные знаком «/», а также дополнительную информацию в скобках. Токены обычно перечислены по значимости, однако это полностью оставлено на усмотрение издателя программного обеспечения. Токены можно использовать для отправки информации о браузере и получения информации об устройстве из ПЗУ устройства, такой как идентификатор модели, операционная система и ее версия и т. д.
Вот два примера UA, используемых Samsung Galaxy S6 и компьютером на базе Mac OS X с браузером Safari.
Mozilla/5,0 (Linux; Android 6.0.1; SM-G920V Build/Mmb29k) AppleWebkit/537,36 (khtml, как гекко) Chrome/52.0.2743.98 10_11_2) AppleWebKit/601.3.9 (KHTML, как Gecko) Version/9.0.2 Safari/601.3.9Ознакомьтесь со списком строк User-Agent >>
Следует отметить, что HTTP/RFC7231 предупреждает об использование слишком длинных и подробных строк User-Agent, которые могут увеличить задержку запроса или сделать возможным «отпечаток пальца». Любые данные, уникальные для отдельного устройства, такие как идентификаторы устройств, IMEI, имена пользователей, номера телефонов и даже предпочтительный язык, не должны включаться.
Подводя итог, можно сказать, что это не очень стандартизированный формат, и, как мы увидим, он превратился в довольно хаотичную среду, которую можно распутать только при постоянном и целенаправленном внимании к отображению и интерпретации этой энтропии.
Анализатор агента пользователя – как его можно использовать
Агенты пользователя можно анализировать с помощью анализатора агента пользователя. Одним из основных вариантов использования синтаксического анализатора пользовательского агента является идентификация и обработка запросов от определенных типов трафика. Проверяя возможности устройства или браузера, вы можете решить, какой контент отправить запрашивающему устройству, или даже адаптировать контент на лету. Это особенно полезно при работе с широким спектром устройств, используемых сегодня, и позволяет вам максимально детализировать свою стратегию таргетинга на контент. Помимо веб-оптимизации, это имеет очевидное применение в рекламном секторе, где устройство может быть полезным в качестве критерия для таргетинга. Информация об устройстве является частью спецификации RTB. Другой возможный вариант использования синтаксического анализатора пользовательского агента — обслуживание контента, зависящего от языка, с использованием заголовков языка и локали.
Другой основной вариант использования связан с аналитикой, которая может быть очень глубокой при хорошем репозитории описаний устройств. Все эти знания можно использовать для улучшения решений по публикации контента, стратегий таргетинга или оптимизации конверсии. Наличие постоянно обновляемого метода синтаксического анализа строк User-Agent также означает, что вы знаете, когда новые устройства подключаются к вашим службам, и можете выявить любые проблемы на ранней стадии.
Помимо браузера
Хотя пользовательские агенты больше всего связаны с браузером, это не единственный клиент, у которого есть пользовательский агент. У ботов и поисковых роботов тоже есть пользовательские агенты, и их можно точно идентифицировать с помощью хорошего решения для обнаружения устройств. Опять же, это особенно полезно для некоторых направлений бизнеса, таких как рекламная индустрия, где боты часто маскируются под настоящие устройства, а мошенничество с кликами является реальной проблемой. Не все решения для обнаружения устройств способны точно обнаруживать маскирующих агентов пользователя. DeviceAtlas может сделать это благодаря большой глобальной установленной базе веб-сайтов, использующих его сервис.
Безопасность — это еще одна большая область, в которой крайне важно знать природу трафика, затрагивающего ваши службы. Существуют всевозможные другие пользовательские агенты, которые могут и сканируют ваш сайт. Они варьируются от поисковых систем до средств проверки ссылок, инструментов SEO, средств чтения каналов, сценариев и других гнусных действующих лиц в веб-ландшафте. Возможность различать эти разные источники может обеспечить значительную экономию затрат на ИТ за счет обнаружения и идентификации трафика ботов на ваш сайт. Это выходит за рамки того, что вы можете сделать со статическим файлом robots.txt. С ботами поисковых систем можно обращаться иначе, чем с другими ботами, человеческий трафик может иметь приоритет над другим трафиком, а злоумышленники могут быть полностью заблокированы.
Является ли парсинг агентом пользователя плохим подходом?
У некоторых людей сложилось плохое впечатление о синтаксическом анализе агента пользователя из-за его роли в так называемом анализе агента пользователя. Чтобы понять, почему использование User-Agent иногда вызывает дурную славу, нам нужно вернуться в 1990-е годы, в период, известный как браузерные войны. Прежде чем мы углубимся в историю, стоит заранее заявить, что синтаксический анализ User-Agent сегодня используется многими ведущими веб-компаниями для обслуживания различных классов устройств. Около 82% Alexa 100 использовали адаптивный веб-дизайн (AWD или адаптацию на стороне сервера) на своих веб-сайтах, поэтому очевидно, что крупные компании не разделяют эту точку зрения.
Еще в 1990-х годах NSCA Mosaic, один из первых браузеров, не поддерживал фреймы. Когда появился Netscape (первоначально известный как Mozilla) с поддержкой фреймов, веб-мастера начали обслуживать контент с поддержкой фреймов на основе наличия токена «Mozilla» в User-Agent. Этот процесс проверки определенных токенов в User-Agent стал известен как «сниффинг UA» или «сниффинг браузера».
По мере того, как браузеры становились все более функциональными и выпускались новые, они начали включать токен Mozilla в свои пользовательские агенты, а не ждать, пока их собственные уникальные пользовательские агенты станут известны веб-мастерам, в надежде, что их браузеры будут распространяться быстрее. . Это именно то, что Microsoft сделала, когда вышла на рынок браузеров с Internet Explorer. Эта тенденция сохранилась и в других браузерах, что сделало User-Agent беспорядочной и нестандартной строкой. Некоторые браузеры, такие как Opera, даже позволяют пользователю устанавливать строку User-Agent, еще больше запутывая значение UA.
Следующие строки User-Agent середины 1990-х иллюстрируют проблему:
Netscape Navigator 2
Mozilla/Version [Language] (Platform; Encryption)
Internet Explorer 3 901 16
Mozilla/2. 0 (совместимый ; версия MSIE; операционная система)
Хотя Интернет с тех пор стал гораздо более стандартизированным местом, многие разработчики по-прежнему считают «обнюхивание браузера» плохой практикой из-за ненадежности поиска присутствия одного ключевого слова, такого как iPhone или Mozilla, в Пользовательский агент.
Важно отметить, что прослушивание браузера — это не то же самое, что обнаружение устройства. В первую очередь он основан на поиске одной конкретной строки в User-Agent, а не на определенной идентификации, основанной на предварительном знании User-Agent. И, как мы видели, вы просто не можете полагаться на наличие одного токена в UA, чтобы точно определить, к какому устройству вы обращаетесь.
Текущая передовая практика заключается в предоставлении наилучших возможностей для всех устройств. Это реакция на массовое увеличение разнообразия устройств, которые мы видим в Интернете. Маловероятно, что универсальный подход будет хорошо работать во времена часов/планшетов/смартфонов и т. д. Это все равно, что пытаться использовать один и тот же видеопоток для телефона, телевизора и кинотеатра одновременно. . Обнаружение устройства является прагматичным решением этой проблемы.
Как работает синтаксический анализ агента пользователя при обнаружении устройства?
С технической точки зрения изучить User-Agent несложно. Вы можете получить строку User-Agent, используя navigator.userAgent в JavaScript или переменную HTTP_USER_AGENT .
Как мы уже видели, нюхать легко, но ненадежно. Многие компании используют регулярные выражения для анализа User-Agent. Опять же, это зависит от сопоставления шаблона или строки для определения ключевых слов, которые могут идентифицировать базовое устройство. Типичный подход с регулярными выражениями будет искать наличие iPhone или Android в User-Agent, но есть много проблем с точностью. Различать планшеты Android и телефоны — очевидная слабость, и наличие токена iPhone может быть столь же полезным, как и токен Mozilla.
Поскольку строки User-Agent не соответствуют ни одному стандартному шаблону, этот метод подвержен сбоям и не рассчитан на будущее. Вам нужно будет постоянно обновлять свои правила регулярных выражений по мере выпуска новых устройств, браузеров и ОС, а затем запускать тесты, чтобы убедиться, что решение все еще работает. В какой-то момент это становится дорогостоящей работой по обслуживанию, а со временем — реальным риском того, что вы неправильно определите или не сможете обнаружить большую часть своего трафика. Точный анализ пользовательских агентов — одна из проблем. Настоящая трудность заключается в том, чтобы оставаться на вершине постоянно меняющегося рынка устройств, браузеров и операционных систем с потенциально миллионами перестановок, когда накладываются такие вещи, как язык и локаль или браузеры с боковой загрузкой. Именно здесь хорошее решение для обнаружения устройств действительно окупается.
Для обнаружения устройства необходимо выполнить два условия.
- Что поиск агента пользователя происходит очень быстро и
- Идентификация устройства очень точна.
Это включает в себя точное сопоставление всех возможных строк User-Agent для конкретного устройства и наличие API, который может точно и быстро возвращать информацию, будучи при этом достаточно гибким, чтобы приспосабливаться к новым вариантам по мере их появления. Причина сложности в том, что существуют миллионы вариантов и постоянно создаются новые пользовательские агенты. Каждое новое устройство, браузер, версия браузера, ОС или приложение могут создавать новый и ранее невиданный User-Agent.
В этом отношении не все подходы к обнаружению устройств одинаковы — плохие будут иметь неточные данные, возвращать ложные срабатывания — вы можете думать, что получаете правильный результат, но худшее решение может возвращать значения по умолчанию для неизвестных UA. Некоторые подходы потребляют ресурсы сервера из-за своих несложных и запутанных API и кодовых баз.
DeviceAtlas использует структуру данных Patricia trie для определения свойств устройства самым быстрым и эффективным способом.