一个高性能、简洁的User-Agent解析和生成库,支持解析、生成和随机生成真实的User-Agent字符串。
- 高性能解析:支持主流浏览器、操作系统、设备类型
- 智能生成:基于模板的User-Agent生成,支持版本控制和兼容性验证
- 随机生成:基于真实数据的随机User-Agent生成,支持兼容性检查
- 中文浏览器支持:支持QQ浏览器、UC浏览器、微信浏览器等中文浏览器
- 并发安全:所有组件都是线程安全的
- 类型安全:使用Go类型系统确保数据正确性
- 简洁设计:移除复杂配置,专注核心功能
go get github.com/zlsgo/useragentpackage main
import (
"fmt"
"github.com/zlsgo/useragent"
)
func main() {
ua := "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/120.0.0.0 Safari/537.36"
// 解析完整信息
result, err := useragent.Parse(ua)
if err != nil {
panic(err)
}
fmt.Printf("浏览器: %s\n", result.Browser().String())
fmt.Printf("操作系统: %s\n", result.OS().String())
fmt.Printf("设备: %s\n", result.Device().String())
// 分别解析
browser, err := useragent.ParseBrowser(ua)
if err != nil {
panic(err)
}
os, err := useragent.ParseOS(ua)
if err != nil {
panic(err)
}
device, err := useragent.ParseDevice(ua)
if err != nil {
panic(err)
}
fmt.Printf("浏览器: %s\n", browser.String())
fmt.Printf("操作系统: %s\n", os.String())
fmt.Printf("设备: %s\n", device.String())
}package main
import (
"fmt"
"github.com/zlsgo/useragent"
"github.com/zlsgo/useragent/types"
)
func main() {
// 创建生成选项
options := &types.GenerateOptions{
BrowserOpt: types.BrowserOptions{
Type: types.BrowserChrome,
Version: types.Version{Major: 91, Minor: 0, Patch: 4472},
},
OSOpt: types.OSOptions{
Type: types.OSWindows,
Version: types.Version{Major: 10, Minor: 0},
},
DeviceOpt: types.DeviceOptions{
Type: types.DeviceDesktop,
Brand: "Generic",
Model: "PC",
},
}
// 生成User-Agent
ua, err := useragent.Generate(options)
if err != nil {
panic(err)
}
fmt.Printf("生成的User-Agent: %s\n", ua)
}package main
import (
"fmt"
"log"
"github.com/zlsgo/useragent"
"github.com/zlsgo/useragent/types"
)
func main() {
// 生成单个随机User-Agent
ua, err := useragent.GenerateRand()
if err != nil {
log.Fatal(err)
}
fmt.Printf("随机User-Agent: %s\n", ua)
// 按设备类型生成
mobileUA, err := useragent.GenerateRand(types.DeviceMobile)
if err != nil {
log.Fatal(err)
}
fmt.Printf("移动端User-Agent: %s\n", mobileUA)
// 生成桌面端
desktopUA, err := useragent.GenerateRand(types.DeviceDesktop)
if err != nil {
log.Fatal(err)
}
fmt.Printf("桌面端User-Agent: %s\n", desktopUA)
// 生成平板端
tabletUA, err := useragent.GenerateRand(types.DeviceTablet)
if err != nil {
log.Fatal(err)
}
fmt.Printf("平板端User-Agent: %s\n", tabletUA)
}解析 User-Agent 字符串并返回关于浏览器、操作系统和设备的详细信息。
解析 User-Agent 字符串并仅返回浏览器信息。
解析 User-Agent 字符串并仅返回操作系统信息。
解析 User-Agent 字符串并仅返回设备信息。
根据提供的选项生成 User-Agent 字符串。
为指定的设备类型生成随机 User-Agent 字符串。
- Chrome, Firefox, Safari, Edge
- Opera, Internet Explorer
- UC Browser, QQ Browser, WeChat
- Sogou, 360 Browser, Miui Browser, Huawei Browser
- Windows, macOS, Linux
- Android, iOS
- Ubuntu, CentOS, Debian, Fedora, RedHat, SUSE
- FreeBSD, OpenBSD, NetBSD
- Desktop, Mobile, Tablet
- TV, Console, Wearable
- 基于2024年真实浏览器版本数据
- 支持主流设备品牌和型号
- 智能版本范围控制
- 浏览器-操作系统兼容性验证
- 设备-操作系统兼容性验证
- 浏览器-设备类型兼容性验证
- 根据市场份额分配生成概率
- 支持自定义权重配置
- 平衡多样性和真实性