解析user-agent的python包,可以获取到系统、浏览器内核、浏览器、设备信息。
-
简化代码结构
- 删除了大量历史设备和过时浏览器的识别规则
- 重构了核心解析逻辑,提升执行效率
- 代码结构更清晰,便于维护和扩展
-
功能优化
- 优化了浏览器内核识别逻辑,准确区分Blink和WebKit
- 聚焦于主流设备和浏览器的识别
- 移除了低使用率的特殊规则
-
性能提升
- 减少正则表达式的使用
- 优化了匹配算法
- 显著提升解析速度
如果您需要继续使用旧版本的完整功能,请安装1.x版本:
pip install "uaDevice<2.0"
- 相比国内外的流行的python包,该模块解析国内复杂的ua信息更加精确
- 已支持鸿蒙系统解析
- 准确识别Blink/WebKit等主流浏览器内核
- 专注于现代浏览器和设备的识别
- Blink (Chrome、新版Edge等)
- WebKit (Safari等)
- Gecko (Firefox)
- Trident (IE)
- Presto (旧版Opera)
- 主流浏览器:Chrome、Firefox、Safari、Edge等
- 国内浏览器:QQ浏览器、UC浏览器、搜狗浏览器等
- 手机厂商浏览器:MIUI浏览器、华为浏览器、OPPO浏览器等
- 其他常用浏览器:微信内置浏览器、百度App等
- 桌面系统:Windows、macOS、Linux等
- 移动系统:iOS、Android、Harmony等
- 设备类型:手机、平板、桌面设备等
- 设备品牌:Apple、Samsung、Huawei等
- 具体机型识别
供参考(以10000个真实请求ua测试):
- 浏览器:98%
- 系统: 99%
- 内核: 98%
- 设备类型: 100%
- 设备型号:86%
- 厂商信息:93%
pip install -U uaDevice
import uaDevice
# Chrome浏览器示例
ua = 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/91.0.4472.124 Safari/537.36'
info = uaDevice.parseUA(ua)
# 输出结果示例
print(f"系统: {info['os']['name']} {info['os']['version']['original']}") # Windows 10.0
print(f"浏览器: {info['browser']['name']} {info['browser']['version']['original']}") # Chrome 91.0.4472.124
print(f"内核: {info['engine']['name']}") # Blink
print(f"设备类型: {info['device']['type']}") # desktop
print(f"设备型号: {info['device']['model']}") # PC
print(f"制造商: {info['device']['manufacturer']}") # Unknown
# 安卓移动端示例
ua = 'Mozilla/5.0 (Linux; Android 13; SM-S918B) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/114.0.0.0 Mobile Safari/537.36'
info = uaDevice.parseUA(ua)
# 输出结果示例
print(f"系统: {info['os']['name']} {info['os']['version']['original']}") # Android 13
print(f"浏览器: {info['browser']['name']} {info['browser']['version']['original']}") # Chrome 114.0.0.0
print(f"内核: {info['engine']['name']}") # Blink
print(f"设备类型: {info['device']['type']}") # mobile
print(f"设备型号: {info['device']['model']}") # SM-S918B
print(f"制造商: {info['device']['manufacturer']}") # Samsung
随着新设备新app等等的上市,ua信息会越来越复杂,该项目需要不断迭代,欢迎提交PR或Issue来完善不支持的ua解析规则。