Šis repozitorijs satur normalizētu, atlasītu lietotāja aģentu virkņu datu kopu, kas glabājas JSON failos un ir paredzēta kā meklēšanas tabula, lai iegūtu vienkāršus lietotāja aģentu datus, piemēram, lietotāja aģenta klients un operētājsistēma.
Tas tiek izmantots kā PageviewsOnline sastāvdaļa, bet šeit tas tiek publicēts vispārējai lietošanai.
Datu kopums tiek papildināts ar vienkāršiem palīgskriptiem, kas ļauj validēt datus un eksportēt tos citos formātos vai programmēšanas valodās (piemēram Java).
Projekta filozofija
Šī projekta mērķis nav nodrošināt pilnīgi drošu vai pilnīgi precīzu lietotāja aģenta atpazīšanas sistēmu, bet gan praktisku, pēc iespējas labāku risinājumu, kas laika gaitā uzlabojas, pateicoties reālai lietošanai un kopienas ieguldījumiem.
Lietotāja aģenta noteikšana ir pati par sevi nepilnīga. Tā vietā, lai censtos pēc pilnīgas precizitātes, šis projekts koncentrējas uz to, lai tas būtu:
- Praktisks
- Uzturams
- Caurspīdīgs
- Pietiekami labs reālās pasaules analītikai un klasifikācijai
Precizitāte uzlabojas laika gaitā, pateicoties atlasītām atjaunināšanām, reālai lietošanai un kopienas ieguldījumiem.
Heuristiskā parsēšana un sarežģītas regulārās izteiksmes bieži apmaina paredzamību pret nelielu precizitātes pieaugumu.
Šis projekts dod priekšroku:
- Caurspīdīgums virs maģijas
- Rūpīgi atlasīti dati, necaurskatāla loģika
- Paskaidrojami rezultāti ir svarīgāki par spekulatīvo detekciju
Funkcijas
- Normalizēts, cilvēku pārskatīts lietotāja aģentu datu kopums
- Vienkārša un paredzama meklēšanas uzvedība
- JSON balstīts formāts, ērti pārskatāms un ar versiju kontroli
- Vieglie validācijas skripti
- Eksportēt palīgfunkcijas citām valodām (piemēram Java)
- Aktīvi tiek izmantots ražošanas SaaS vidē
Normalizētās Lietotāja Aģenta Virknes
Šī projekta galvenais mērķis ir ātri un paredzami iegūt augsta līmeņa stabilu informāciju no lietotāja aģentu virkņu.
Lai to atbalstītu, katra lietotāja aģenta virkne tiek normalizēta pirms apstrādes. Normalizācija noņem nestabilu variāciju (piemēram, versiju numurus un rakstības atšķirības), vienlaikus saglabājot lietotāja aģenta strukturālo un semantisko nozīmi.
Lietotāja aģenta virknes tiek normalizētas, izmantojot šādus soļus:
- Aizvietojiet visus ciparus (0-9) ar aizstājēja rakstzīmi x. Tas novērš troksni, ko rada versiju izmaiņas, vienlaikus saglabājot tokenu struktūru un garumu.
- Pārveido visu virkni uz mazajiem burtiem. Lietotāja aģentu tokeni pēc konvencijas nav jutīgi pret lielajiem un mazajiem burtiem, un mazā rakstība nodrošina konsekventus un uzticamus meklēšanas iznākumus.
Piemēram, sekojošā lietotāja aģenta virkne:
Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/143.0.0.0 Safari/537.36
Ir normalizēts līdz:
mozilla/x.x (windows nt xx.x; winxx; xxx) applewebkit/xxx.xx (khtml, like gecko) chrome/xxx.x.x.x safari/xxx.xx
Šī normalizācijas pieeja ļauj lietotāju aģentiem vieglāk grupēt, salīdzināt un uzturēt laika gaitā, vienlaikus nodrošinot pietiekamu precizitāti augsta līmeņa klientu un operētājsistēmas klasifikācijai.
Novēršot versiju specifisko mainību un jutīgumu pret lielajiem un mazajiem burtiem, meklēšanas process kļūst prognozējamāks un izturīgāks pret nākotnes lietotāja aģentu izmaiņām.
Datu Formāts
Katrs normalizētais lietotāja aģenta ieraksts ietver:
- id - Normalizētā lietotāja aģenta virkne
- client_family - Augsta līmeņa klientu klasifikācija (piem. pārlūks, bots, lietotne)
- os_family - Augsta līmeņa operētājsistēmu klasifikācija
Precīzie lauki var mainīties laika gaitā, jo datu kopums aug.
Meklēšanas uzvedība
Lietotāja aģenta salīdzināšana tiek veikta pret normalizētām virknēm.
Precīzas atbilstības ir prioritāte; tiek apzināti izslēgtas daļējas vai heuristiskas atbilstības, lai uzvedība būtu paredzama un viegli atkļūdojama.
Līdzdalība
Jūsu ieguldījumi ir ļoti gaidīti un palīdz uzlabot projekta kopējo kvalitāti un precizitāti.
Visefektīvākais veids, kā sniegt ieguldījumu, ir pievienot vai atjaunināt normalizētus lietotāja aģenta ierakstus failā user_agents.json, kopā ar attiecīgajiem klasifikācijas datiem.
Kad jūsu izmaiņas būs gatavas, lūdzu iesniedziet pull request, kurā iekļauti nepieciešamie dati un/vai koda atjauninājumi.
Pat patiesa vai nepilnīga informācija ir noderīga un tiek novērtēta - katrs ieguldījums palīdz uzlabot pārklājumu un ilgtermiņa uzticamību.
Sākt Darbu (Ātrais Ceļvedis)
Šī projekta kodols ir JSON datu failu komplekts, kas atrodas mapē data/.
Lai palīdzētu uzturēt un atkārtoti izmantot šos datus, repozitorijs ietver nelielu Node.js skriptu komplektu, kas veic pamata validāciju un eksportēšanas uzdevumus.
Visbiežāk pieejamās komandas:
- npm run test - Validē JSON datus un pārbauda strukturālas vai saskaņošanas kļūdas.
- npm run build - Izveido, sakārto un eksportē normalizētos datus citās programmēšanas valodu formās (piemēram Java) vienkāršākai integrācijai.
Šie rīki ir apzināti minimāli, koncentrējoties uz datu pareizību un pārvietojamību, nevis uz sarežģītu apstrādi.
Lietotāja Aģenta Virknes Nav Uzticamas
Precīzas informācijas iegūšana no lietotāja aģenta virkņu ir neuzticama vairāku iemeslu dēļ:
- Nav formāla standarta vai specifikācijas, kas regulētu lietotāja aģenta virkņu struktūru vai saturu.
- Daudzi lietotāja aģenti apzināti vilto vai imitē citus lietotāja aģentus savietojamības un novecojošu iemeslu dēļ
Tāpēc ir ārkārtīgi grūti noteikt lietotāja aģenta datus pilnīgi precīzi un konsekventi.
Šo bibliotēku vajadzētu uztvert kā vislabāko iespējamo risinājumu, nevis kā avots garantētai vai autoritatīvai patiesībai.
Ar turpmāku lietošanu un kopienas ieguldījumiem precizitāte var uzlaboties laika gaitā.
Versiju Pārvaldība un Stabilitāte
Datu kopums var mainīties laika gaitā, jo lietotāju aģenti attīstās.
Klasifikācijas netiek uzskatītas par bojājošām izmaiņām, pat starp nelielajām versijām.
Patērētājiem vajadzētu uztvert rezultātus kā vispārīgus ieteikumus, nevis kā līguma garantijas.
Licence
Šis projekts un tā dati ir licencēti zem Apache License 2.0 (Apache-2.0).
Komerciāla izmantošana, modifikācija un izplatīšana ir atļauta.
Jūsu ieguldījumi tiek gaidīti un novērtēti.
Preču zīme
PageviewsOnline, Two-Dot-Oh un ar to saistītie logotipi, pakalpojumu nosaukumi vai zīmoli ir Two-Dot-Oh preču zīmes.
Šis projekts ir atvērtā koda; tomēr PageviewsOnline nosaukuma vai jebkura ar to saistītā zīmola izmantošana saistībā ar produktu, pakalpojumu vai piedāvājumu nav atļauta bez iepriekšējās rakstiskas piekrišanas.
Forki un atvasinātie darbi ir jāizstrādā ar citu nosaukumu un zīmolu, un tiem nedrīkst būt norādes uz atbalstu vai saistību ar PageviewsOnline vai Two-Dot-Oh.