UserAgent解析工具调研

UserAgent可以获取的信息

browserType AgentName
代理名称-浏览器类型

browserCore LayoutEngineName
布局引擎名称 -浏览器核心

osVersion OperatingSystemNameVersion
系统版本

deviceTrademark DeviceBrand
设备品牌 制造商

equipmentModel DeviceName
设备型号

测试UserAgent示例

Mozilla/5.0 (Linux; Android 9; MIX 2S Build/PKQ1.180729.001; wv) AppleWebKit/537.36 (KHTML, like Gecko) Version/4.0 Chrome/72.0.3626.121 Mobile Safari/537.36 Shengbei/7.4.0 ShengID/c5a521fb890c0abd

java类UserAgent解析工具类评估

  • user-agent-utils
    jar依赖:

    <dependency>
    <groupId>nl.bitwalker</groupId>
    <artifactId>UserAgentUtils</artifactId>
    <version>1.2.4</version>
    </dependency>
    

    解析结果:Chrome/WEB_BROWSER WEBKIT ANDROID Google Inc. MOBILE。

    测试结论:类库简单,但准确度很低。

  • yauaa

    jar依赖:

    <dependency>
    <groupId>nl.basjes.parse.useragent</groupId>
    <artifactId>yauaa</artifactId>
    <version>5.14.1</version>
    </dependency>
    

    解析结果:Chrome Webview Blink Android 9 Xiaomi Xiaomi MIX 2S。

    测试结论:解析结果全面、准确度高,但绕不开单线程锁。

  • UASparser

    jar依赖:

    <dependency>
    <groupId>cz.mallat.uasparser</groupId>
    <artifactId>uasparser</artifactId>
    <version>0.6.2</version>
    </dependency>
    

    解析结果:Chrome MobileAndroid Google, Inc.。

    测试结论:jdk1.7以上版本支持,但准确度很低。

  • uap-java

    jar依赖:

    <dependency>
    <groupId>io.divolte.uaparser</groupId>
    <artifactId>uap-java</artifactId>
    <version>0.6.2</version>
    </dependency>
    

    解析结果:Chrome Mobile WebView Android 9 XiaoMi MIX 2S。

    测试结论:准确度高,但存在性能问题,解析慢。

结论

优点:yauaa工具类解析UserAgent获取的信息更全面,更准确;缺点:存在单线程锁的问题,容易导致线程阻塞,需要对其源码进行二次开发;改造方案:1、分段锁+多例 2、优化源码;二次开发难度不大,综合推荐使用yauaa工具。

其在线UserAgent解析体验工具:https://try.yauaa.basjes.nl/

yauaa相关类库

常用的解析类及字段
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容