Підраховуйте перегляди сторінок, а не людей. Веб-аналітика з пріоритетом приватності, безпечно зберігається в ЄС.
ВІДКРИТА БЕТА
Підраховуйте перегляди сторінок, а не людей. Веб-аналітика з пріоритетом приватності, безпечно зберігається в ЄС.

Таблиця пошуку агентів користувача з відкритим вихідним кодом

Набір даних з відкритим кодом для розпізнавання агента користувача з передбачуваною поведінкою. У форматі JSON, перевірений людьми та розроблений для практичного використання в аналітиці.
Цю сторінку переклали з англійської наші мотивовані стажери зі штучного інтелекту для вашої зручності. Вони ще навчаються, тож можливі незначні помилки. Для максимальної точності інформації, будь ласка, зверніться до англійської версії.
додому Проєкти З Відкритим Вихідним Кодом Таблиця пошуку агентів користувача з відкритим вихідним кодом

Цей репозиторій містить нормалізований, відбірний набір даних рядків агента користувача, збережений у файлах JSON і призначений для використання як таблиця пошуку з метою отримання простих даних про агента користувача, таких як його клієнт та операційна система.

Він використовується як компонент PageviewsOnline, але опублікований тут для загального використання.

Набір даних доповнюють прості допоміжні скрипти для перевірки даних та експорту їх у інші формати або мови програмування (наприклад, Java).

Філософія проекту

Метою цього проєкту не є створення безпомилкової чи абсолютно точної системи виявлення агента користувача, а радше практичне рішення, яке прагне до кращих результатів і з часом вдосконалюється завдяки реальному використанню та внескам спільноти.

Визначення агента користувача за своєю суттю недосконале. Замість того, щоб прагнути до повної точності, цей проєкт зосереджується на тому, щоб бути:

  • Практичний
  • Підтримуваний
  • Прозорий
  • Достатньо підходить для аналітики та класифікації у реальному світі

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

Евристичний парсинг та складні регулярні вирази часто обмінюють передбачуваність на незначні прирости точності.

У цьому проекті переваги:

  • Прозорість над магією
  • Кураторовані дані, а не непрозора логіка
  • Пояснювані результати важливіші за спекулятивне виявлення

Особливості

  • Нормалізований, перевірений людьми набір даних агентів користувачів
  • Проста та передбачувана поведінка пошуку
  • Формат на основі JSON, зручний для перегляду та контролю версій
  • Легкі скрипти валідації
  • Експортувати допоміжні утиліти для інших мов (наприклад, Java)
  • Активно використовується у виробничому середовищі SaaS

Нормалізовані Рядки Агента Користувача

Головна мета цього проєкту — швидко та передбачувано витягувати високорівневу та стабільну інформацію з рядків користувацьких агентів.

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

Рядки агента користувача нормалізуються за допомогою наступних кроків:

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

Наприклад, наступний рядок агента користувача:

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

Цей підхід нормалізації полегшує групування, порівняння та підтримку агентів користувачів з часом, водночас залишаючись достатньо точним для високорівневого класифікування клієнтів та операційних систем.

Усунувши варіабельність, пов’язану з версією та регістром, процес пошуку стає більш передбачуваним та стійким до майбутніх змін у заголовку User-Agent.

Формат даних

Кожен нормалізований запис агента користувача містить:

  • id - Нормалізований рядок агента користувача
  • client_family - високорівнева класифікація клієнтів (наприклад, браузер, бот, застосунок)
  • os_family - Високорівнева класифікація операційних систем

Поля можуть з часом змінюватися у міру зростання набору даних.

Lookup Behaviour

Підбір за User-Agent виконується щодо нормалізованих рядків.

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

Участь

Внески дуже вітаються і допомагають покращити загальну якість та точність цього проєкту.

Найефективнішим способом зробити внесок є додати або оновити нормалізовані записи агентів користувача у файлі user_agents.json, разом із відповідними даними класифікації.

Коли ваші зміни будуть готові, будь ласка, надішліть запит на злиття (pull request) з необхідними даними та/або оновленнями коду.

Even partial or incomplete information is useful and appreciated — every contribution helps improve coverage and long-term reliability.

Початок роботи (Швидкий посібник)

Ядро цього проєкту — це набір JSON-даних файлів, розташованих у директорії data/.

Щоб допомогти підтримувати та повторно використовувати ці дані, у репозиторії є невеликий набір простих скриптів Node.js, які виконують базову перевірку та завдання експорту.

Найпоширеніші доступні команди:

  • Перевіряє JSON-дані та шукає структурні помилки або помилки узгодженості.
  • npm run build - Будує, сортує та експортує нормалізовані дані у формати інших мов програмування (наприклад Java) для більш зручної інтеграції.

Ці інструменти навмисно мінімальні, з акцентом на коректність даних та переносимість, а не на складну обробку.

Рядки User-Agent ненадійні

Збір точної інформації з рядків user-agent за своєю природою ненадійний з кількох причин:

  • Немає формального стандарту чи специфікації, які регулюють структуру або вміст рядків user-agent
  • Багато агентів користувача навмисно підробляють або імітують інших агентів користувача через сумісність та застарілі причини

З цієї причини визначити дані користувацького агента у повністю точному та послідовному вигляді надзвичайно складно.

Отже, цю бібліотеку слід розглядати як рішення, що ґрунтується на найкращих зусиллях, а не як джерело гарантованої чи авторитетної істини.

З постійним використанням та участю спільноти точність може з часом покращитися.

Версіонування та стабільність

Набір даних може з часом змінюватися, оскільки еволюціонують агенти користувачів.

Класифікації не вважаються несумісними змінами, навіть між мінорними версіями.

Споживачі повинні розглядати результати як підказки, надані за найкращими зусиллями, а не як договірні гарантії.

Ліцензія

Цей проект та його дані розповсюджуються за умовами ліцензії Apache 2.0 (Apache-2.0).

Комерційне використання, модифікація та розповсюдження дозволені.

Внески вітаються та цінуються.

Trade mark

PageviewsOnline, Two-Dot-Oh та будь-які пов’язані логотипи, назви сервісів або брендинг є торговими марками Two-Dot-Oh.

Цей проєкт з відкритим кодом; проте використання назви PageviewsOnline або будь-якого пов’язаного брендингу у зв’язку з продуктом, послугою або пропозицією заборонено без попередньої письмової згоди.

Форки та похідні роботи повинні використовувати іншу назву та брендинг і не повинні мати на увазі схвалення чи зв'язок з PageviewsOnline або Two-Dot-Oh.