Считайте просмотры страниц, а не людей. Веб-аналитика, ориентированная на конфиденциальность, безопасно хранится в ЕС.
ОТКРЫТАЯ БЕТА
Считайте просмотры страниц, а не людей. Веб-аналитика, ориентированная на конфиденциальность, безопасно хранится в ЕС.

Таблица Поиска User-Agent С Открытым Исходным Кодом

Набор данных по определению User-Agent с открытым исходным кодом и предсказуемым поведением. Основан на JSON, проверен людьми и предназначен для практического анализа.
Эта страница переведена с английского нашими очень мотивированными стажёрами по ИИ для вашего удобства. Они ещё учатся, поэтому могли быть допущены некоторые ошибки. Для самой точной информации, пожалуйста, смотрите английскую версию.
Дом Проекты с открытым исходным кодом Таблица Поиска User-Agent С Открытым Исходным Кодом

Этот репозиторий содержит нормализованный, курируемый набор данных строк User-Agent, сохранённых в виде JSON-файлов и предназначенных для использования в качестве таблицы поиска для извлечения простой информации об агенте пользователя, такой как сам клиент User-Agent и операционная система.

Он используется как компонент PageviewsOnline, но здесь публикуется для общего пользования.

Набор данных дополняется простыми вспомогательными скриптами для проверки данных и экспорта их в другие форматы или языки программирования (например, Java).

Философия проекта

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

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

  • Практический
  • Поддерживаемый
  • Прозрачный
  • Хорошо подходит для практической аналитики и классификации

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

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

Этот проект отдает предпочтение:

  • Прозрачность важнее магии
  • Кураторские данные — не непрозрачная логика
  • Объяснимые результаты важнее спекулятивного обнаружения

Особенности

  • Нормализованный набор данных пользовательских агентов, прошедший ручную проверку
  • Простое и предсказуемое поведение поиска
  • JSON-формат, удобный для просмотра и контроля версий
  • Легковесные скрипты валидации
  • Экспорт помощников для других языков (например, Java)
  • Активно используется в производственной SaaS-среде.

Нормализованные строки User-Agent

Основная цель этого проекта — извлекать высокоуровневую, стабильную информацию из строк пользовательских агентов быстро и предсказуемо.

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

Строки User-Agent нормализуются с помощью следующих шагов:

  • Замените все цифры (0-9) на символ-заполнитель x. Это устраняет шум, вызванный изменениями версий, сохраняя структуру токенов и их длину.
  • Преобразуйте всю строку в нижний регистр. Токены User-Agent нечувствительны к регистру по принятым соглашениям, и приведение к нижнему регистру обеспечивает последовательный и надежный поиск.

Например, следующая строка заголовка User-Agent:

Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/143.0.0.0 Safari/537.36

Нормализовано до:

mozilla/x.x (windows nt xx.x; winxx; xxx) applewebkit/xxx.xx (khtml, like gecko) chrome/xxx.x.x.x safari/xxx.xx

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

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

Формат данных

Каждая нормализованная запись пользовательского агента включает:

  • id - нормализованная строка User-Agent
  • client_family - классификация клиента высокого уровня (например: браузер, бот, приложение)
  • os_family - Высокоуровневая классификация операционных систем

Точные поля могут изменяться со временем по мере роста набора данных.

Поведение поиска

Сопоставление User-Agent выполняется по нормализованным строкам.

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

Вклад

Любые вклады очень приветствуются и помогают улучшить общее качество и точность этого проекта.

Самый эффективный способ внести вклад — добавить или обновить нормализованные записи User-Agent в файле user_agents.json, а также сопутствующие данные классификации.

Как только ваши изменения будут готовы, пожалуйста, создайте pull request, содержащий необходимые данные и/или обновления кода.

Даже частичная или неполная информация полезна и ценится — каждый вклад помогает улучшить охват и долгосрочную надёжность.

Начало работы (Краткое руководство)

Основу этого проекта составляет набор JSON-файлов, расположенных в каталоге data/.

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

Распространённые команды:

  • npm run test - Проверяет данные JSON и ищет структурные ошибки или ошибки согласованности.
  • npm run build - Собирает, сортирует и экспортирует нормализованные данные в форматы других языков программирования (таких как Java) для упрощения интеграции.

Эти инструменты намеренно минималистичны, сосредоточены на корректности данных и переносимости, а не на сложной обработке.

Строки User-Agent ненадёжны

Получение точной информации из строк User-Agent по своей природе ненадёжно по нескольким причинам:

  • Нет единого формального стандарта или спецификации, регулирующих структуру или содержимое строк User-Agent
  • Многие пользовательские агенты сознательно подменяют или имитируют другие пользовательские агенты ради совместимости и из-за устаревших требований.

По этой причине определить данные User-Agent с полной точностью и последовательностью крайне сложно.

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

При дальнейшем использовании и участии сообщества точность может улучшаться со временем.

Версионирование и Стабильность

Набор данных может меняться со временем по мере эволюции пользовательских агентов.

Классификации не считаются несовместимыми изменениями, даже между минорными версиями.

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

Лицензия

Этот проект и его данные распространяются под лицензией Apache License 2.0 (Apache-2.0).

Коммерческое использование, модификация и перераспределение разрешены.

Вклады приветствуются и ценятся.

Торговая марка

PageviewsOnline, Two-Dot-Oh, и любые связанные логотипы, названия сервисов или брендинг являются товарными знаками Two-Dot-Oh.

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

Форки и производные работы должны использовать другое название и другой фирменный стиль и не должны подразумевать одобрение со стороны PageviewsOnline или Two-Dot-Oh, а также не должны иметь связи с ними.