Conta le visualizzazioni di pagina, non le persone. Analitica web orientata alla privacy, conservata in modo sicuro nell'UE.
BETA APERTA
Conta le visualizzazioni di pagina, non le persone. Analitica web orientata alla privacy, conservata in modo sicuro nell'UE.

Tabella di ricerca per User Agent Open Source

Dataset open source per l'identificazione degli user agent con comportamento prevedibile. Basato su JSON, revisionato manualmente e progettato per uso analitico pratico.
Questa pagina è stata tradotta dall'inglese dai nostri stagisti dell'IA, molto motivati, per vostra comodità. Stanno ancora imparando, quindi potrebbero essersi verificati alcuni errori. Per le informazioni più accurate, si prega di fare riferimento alla versione in inglese.
Casa Progetti Open Source Tabella di ricerca per User Agent Open Source

Questo repository contiene un dataset normalizzato e curato di stringhe di user agent, memorizzato come file JSON e progettato per essere utilizzato come tabella di ricerca al fine di ricavare dati semplici sull'User-Agent, come il client e il sistema operativo.

Viene utilizzato come componente di PageviewsOnline, ma è pubblicato qui per uso generale.

Il dataset è arricchito da semplici script di utilità per validare i dati ed esportarli in altri formati o linguaggi di programmazione (come Java).

Filosofia del progetto

L'obiettivo di questo progetto non è fornire un sistema di rilevamento dell'user-agent infallibile o perfettamente accurato, ma piuttosto una soluzione pratica, con il massimo impegno, che migliori nel tempo grazie all'uso reale e ai contributi della comunità.

Il rilevamento dell'agente utente è intrinsecamente imperfetto. Invece di inseguire una precisione completa, questo progetto si concentra sull'essere:

  • Pratico
  • Manutenibile
  • Trasparente
  • Sufficiente per analisi e classificazione nel mondo reale

L'accuratezza migliora nel tempo grazie a aggiornamenti curati, all'uso nel mondo reale e ai contributi della comunità.

L'analisi euristica e le espressioni regolari complesse spesso sacrificano la prevedibilità per guadagni di accuratezza marginali.

Questo progetto predilige:

  • Trasparenza prima della magia
  • Dati selezionati anziché logica opaca
  • Risultati spiegabili piuttosto che rilevamento speculativo

Caratteristiche

  • Dataset di user agent normalizzato e revisionato manualmente
  • Comportamento di ricerca semplice e prevedibile
  • Formato basato su JSON, facile da ispezionare e da gestire le versioni
  • Script di validazione leggeri
  • Esporta helper per altri linguaggi (ad es. Java)
  • Attivamente utilizzato in un ambiente SaaS di produzione

Stringhe di User-Agent Normalizzate

L'obiettivo principale di questo progetto è estrarre informazioni di alto livello e stabili dalle stringhe dell'User-Agent in modo rapido e prevedibile.

Per supportare questo, ogni stringa dell'agente utente viene normalizzata prima dell'elaborazione. La normalizzazione rimuove variazioni instabili (come numeri di versione e differenze di maiuscole/minuscole) pur mantenendo intatto il significato strutturale e semantico dell'agente utente.

Le stringhe dell'agente utente sono normalizzate utilizzando i passaggi seguenti:

  • Sostituisci tutte le cifre numeriche (0-9) con il carattere segnaposto x. Questo elimina il rumore causato dai cambi di versione, mantenendo la struttura e la lunghezza dei token.
  • Converti l'intera stringa in minuscolo. I token dell'agente utente sono insensibili alle maiuscole per convenzione, e la conversione in minuscolo garantisce ricerche coerenti e affidabili.

Ad esempio, la seguente stringa di 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

È normalizzato a:

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

Questo approccio di normalizzazione rende gli user agent più facili da raggruppare, confrontare e mantenere nel tempo, pur rimanendo sufficientemente accurato per una classificazione ad alto livello di client e sistemi operativi.

Eliminando la variabilità legata alle versioni e al maiuscolo/minuscolo, il processo di lookup diventa più prevedibile e robusto di fronte ai futuri cambiamenti dell'agente utente.

Formato dei dati

Ogni voce di user agent normalizzata include:

  • id - La stringa normalizzata dell'User-Agent
  • client_family - Classificazione ad alto livello del client (ad es. browser, bot, app)
  • os_family - Classificazione ad alto livello del sistema operativo

I campi esatti potrebbero evolversi nel tempo man mano che il set di dati cresce.

Comportamento di Ricerca

L'abbinamento dell'user agent viene eseguito su stringhe normalizzate.

Si preferiscono le corrispondenze esatte; le corrispondenze parziali o euristiche sono volutamente evitate per mantenere un comportamento prevedibile e debuggabile.

Contribuire

I contributi sono molto benvenuti e aiutano a migliorare la qualità e l'accuratezza complessive di questo progetto.

Il modo più efficace per contribuire è aggiungere o aggiornare voci di user agent normalizzate nel file user_agents.json, insieme a eventuali dati di classificazione rilevanti.

Una volta che le tue modifiche sono pronte, invia una pull request contenente i dati necessari e/o gli aggiornamenti del codice.

Anche informazioni parziali o non complete sono utili e apprezzate - ogni contributo aiuta a migliorare la copertura e l'affidabilità a lungo termine.

Iniziare (Guida rapida)

Il cuore di questo progetto è l'insieme dei file JSON, situati nella directory data/.

Per aiutare a mantenere e riutilizzare questi dati, il repository include un piccolo insieme di script Node.js semplici che eseguono controlli di base ed operazioni di esportazione.

Comandi disponibili:

  • npm run test - Valida i dati JSON e controlla errori strutturali o di coerenza.
  • npm run build - Costruisce, ordina ed esporta i dati normalizzati in formati di altri linguaggi di programmazione (come Java) per un'integrazione più semplice.

Questi strumenti sono volutamente minimali, concentrandosi sulla correttezza dei dati e sulla portabilità anziché su un'elaborazione complessa.

Le stringhe dell'User-Agent non sono affidabili

Ottenere informazioni accurate dalle stringhe dell'user-agent è intrinsecamente inaffidabile per diverse ragioni:

  • Non esiste uno standard formale o una specifica che governi la struttura o i contenuti delle stringhe dell'user-agent.
  • Molti user-agent simulano intenzionalmente o imitano altri user-agent per motivi di compatibilità e retrocompatibilità.

Per questo motivo, è estremamente difficile determinare i dati dell'user-agent in modo completamente accurato e coerente.

Questa libreria dovrebbe dunque essere considerata una soluzione nel miglior modo possibile, non una fonte di verità garantita o autorevole.

Con l'uso continuo e i contributi della comunità, l'accuratezza può migliorare nel tempo.

Versionamento & Stabilità

Il set di dati potrebbe cambiare nel tempo man mano che gli agenti utente evolvono.

Le classificazioni non sono considerate cambiamenti che interrompono la compatibilità, nemmeno tra le versioni minori.

I consumatori dovrebbero considerare i risultati come indicazioni di massima, non come garanzie contrattuali.

Licenza

Questo progetto e i suoi dati sono rilasciati sotto la licenza Apache 2.0 (Apache-2.0).

L'uso commerciale, la modifica e la ridistribuzione sono consentiti.

I contributi sono benvenuti e apprezzati.

Marchio

PageviewsOnline, Two-Dot-Oh, e qualsiasi logo associato, nomi di servizi o marchi sono marchi registrati di Two-Dot-Oh.

Questo progetto è open source; tuttavia, l'uso del nome PageviewsOnline o di eventuali marchi associati in relazione a un prodotto, servizio o offerta non è consentito senza previo consenso scritto.

Forks e opere derivate devono utilizzare nomi e branding differenti e non devono implicare l'approvazione o l'affiliazione da parte di PageviewsOnline o Two-Dot-Oh.