See hoidla sisaldab normaliseeritud, kureeritud kasutajagentide stringide andmestikku, mis on salvestatud JSON-failidena ja mõeldud otsingutabelina kasutamiseks, et tuua esile lihtsad kasutajagentide andmed, näiteks kasutajagentide klient ja operatsioonisüsteem.
See on PageviewsOnline'i komponendina kasutusel, kuid avaldatakse siin üldotstarbeliseks kasutamiseks.
Andmestikku täiendavad lihtsad abiskripid andmete valideerimiseks ja nende eksportimiseks teistesse formaatidesse või programmeerimiskeeltesse (nagu Java).
Projekti filosoofia
Selle projekti eesmärk ei ole pakkuda veatut või täiesti täpset kasutajaagentide tuvastamise süsteemi, vaid pigem praktiline, parima pingutusega lahendus, mis paraneb aja jooksul reaalses kasutuses ja kogukonna panuse kaudu.
Kasutajagentide tuvastamine on loomulikult ebatäiuslik. Selle asemel, et püüdleda täielikku täpsust, keskendub see projekt sellele, et olla:
- Praktiline
- Hooldatav
- Läbipaistev
- Piisavalt hea reaalses maailmas toimuvaks analüüsiks ja klassifikatsiooniks
Täpusus paraneb aja jooksul hoolikalt koostatud uuenduste, reaalmaailma kasutamise ja kogukonna panuse kaudu.
Heuristiline parsimine ja keerulised regulaaravaldised kipuvad vahetama ennustatavuse vastu vaid marginaalse täpsusparanduse nimel.
See projekt eelistab:
- Läbipaistvus maagia ees
- Valitud andmed varjatud loogika asemel
- Selgitatavad tulemused spekulatiivse tuvastamise ees
Omadused
- Normaliseeritud, inimeste poolt ülevaadatud kasutajagendi andmestik
- Lihtne ja prognoositav otsingu käitumine
- JSON-põhine formaat, mida on lihtne kontrollida ja versioonihaldada
- Kerged valideerimisskriptid
- Eksportige abi-funktsioonid teistele keeltele (nt Java)
- Aktiivselt kasutusel SaaS-i tootmiskeskkonnas
Normeeritud Kasutajaagentide Stringid
Selle projekti peamine eesmärk on kasutajagentide stringidest eraldada kõrgtasemeline ja stabiilne teave kiiresti ja ennustataval viisil.
Selleks, et seda toetada, normaliseeritakse iga kasutajagendi stringi enne töötlemist. Normaliseerimine kõrvaldab ebastabiilse varieerumise (näiteks versiooninumbrid ja suur-/väiketähtede erinevused), säilitades samal ajal kasutajagendi struktuurilise ja semantilise tähenduse.
Kasutajaagentide stringid normaliseeritakse järgmiste sammude abil:
- Asenda kõik numbrilised sümbolid (0–9) asendustähega x. See vähendab versioonimuutustest tulenevat müra, säilitades samal ajal tokeni struktuuri ja pikkuse.
- Muuda kogu stringi väikesteks tähtedeks. Kasutajaagentide tokenid on kirjapildi suhtes suurtähtedest sõltumatud, ning väikesed tähed tagavad järjepidevad ja usaldusväärsed otsingud.
Näiteks järgmine kasutajaagentstring:
Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/143.0.0.0 Safari/537.36
On normaliseeritud väärtuseks:
mozilla/x.x (windows nt xx.x; winxx; xxx) applewebkit/xxx.xx (khtml, like gecko) chrome/xxx.x.x.x safari/xxx.xx
See normaliseerimisviis muudab kasutajagente hõlpsamaks rühmitamiseks, võrdlemiseks ja ajas püsivaks haldamiseks, samal ajal kui see jääb piisavalt täpseks kõrgema taseme kliendi- ja operatsioonisüsteemi klassifikatsiooniks.
Vähendades versioonispetsiifilist ja suur- ning väiketähtedega seotud varieeruvust, muutub otsinguprotsess prognoositavamaks ja vastupidavamaks tulevastele kasutajaagentide muudatustele.
Andmete formaat
Iga normaliseeritud kasutajagendi kirje sisaldab:
- id - Normeeritud kasutajagendi string
- client_family - Kõrgtasemeline kliendi klassifikatsioon (nt brauser, bot, rakendus)
- os_family - Kõrgtasemeline operatsioonisüsteemide klassifikatsioon
Andmekogu kasvades võivad täpsed väljad aja jooksul muutuda.
Otsingu käitumine
Kasutajaagendi sobitamine toimub normaliseeritud stringide vastu.
Täpsed vasted on eelistatud; osaline või heuristiline sobitamine on teadlikult vältitud, et käitumine oleks prognoositav ja debugeeritav.
Panustamine
Panused on väga teretulnud ning aitavad parandada selle projekti üldist kvaliteeti ja täpsust.
Kõige mõjuvam panus on lisada või uuendada normaliseeritud kasutajagentide kirjeid failis user_agents.json ning kaasata asjakohaseid klassifikatsiooniandmeid.
Kui muudatused on valmis, palun esita pull request, mis sisaldab vajalikke andmeid ja/või koodimuudatusi.
Isegi osaline või puudulik teave on kasulik ja hinnatud - iga panus aitab parandada katvust ja pikaajalist usaldusväärsust.
Alustamine (Kiire Juhend)
Selle projekti keskmes on JSON-andmete kogum, mis asub kaustas data/.
Selle andmete säilitamise ja taaskasutamise hõlbustamiseks sisaldab hoidla väikest hulka lihtsaid Node.js skripte, mis teevad põhilisi valideerimis- ja eksportimise ülesandeid.
Kättesaadavad käsud:
- Valideerib JSON-andmed ja kontrollib struktuuri- või järjepidevusvigu.
- Loob, sorteerib ja eksportib normeeritud andmed teistesse programmeerimiskeeltesse (nt Java) lihtsama integreerimise jaoks.
Need tööriistad on teadlikult minimalistlikud, keskendudes andmete õigsusele ja ühilduvusele, mitte keerulisele töötlemisele.
Kasutajaagentide stringid ei ole usaldusväärsed
Kasutajaagentide stringidest täpse teabe tuletamine on mitmel põhjusel loomulikult ebausaldusväärne:
- Kasutajagendi stringide struktuuri või sisu kohta puudub ametlik standard või spetsifikatsioon
- Paljud kasutajagentid teevad teadlikult võltsinguid või jäljendavad teisi kasutajagentide jaoks, et tagada ühilduvus ja vanade süsteemide tugi
Selle tõttu on väga raske kindlaks teha kasutajagendi andmeid täielikult täpse ja järjepideva viisiga.
Seetõttu tuleks seda tarkvararaamatukogu käsitleda kui parima pingutusega lahendust, mitte kui garanteeritud või autoriteetse tõe allikaks.
Jätkuva kasutamise ja kogukonna panuste abil võib täpsus aja jooksul paraneda.
Versioonimine & Stabiilsus
Andmekogu võib aja jooksul muutuda, kuna kasutajagentide areng jätkub.
Klassifikatsioonid ei loeta katkestavateks muudatusteks, isegi väikeste versioonide vahel.
Tarbijad peaksid tulemusi käsitlema kui parima pingutusega vihjeid, mitte lepingulisi garantiidena.
Litsents
See projekt ja selle andmed on Apache License 2.0 (Apache-2.0) alusel avaldatud.
Kaubanduslik kasutamine, muudatuste tegemine ja uuesti levitamine on lubatud.
Panused on teretulnud ja hindame neid.
Kaubamärk
PageviewsOnline, Two-Dot-Oh ja kõik seotud logod, teenuste nimed või bränding on Two-Dot-Oh'i kaubamärgid.
See projekt on avatud lähtekoodiga; siiski ei ole PageviewsOnline'i nime või sellega seotud brändingu kasutamine mis tahes toote, teenuse või pakkumisega seotud kontekstis lubatud ilma eelneva kirjaliku nõusolekuta.
Harud ja derivaaditööd peavad kasutama teistsugust nime ja brändi ning ei tohi viidata heakskiidule või seotusele PageviewsOnline'i või Two-Dot-Ohiga.