⭐ If you find this project useful, please star it on GitHub!
Python User Agent Parser
user_agent_parser is a Python 3 library that provides an easy way to identify/detect devices from user agent string
- User agent is a mobile or computer
- User agent Browser name and versions
- User agent Device name
user_agent_parser hosted on PyPI and can be installed as such:
pip install user-agent-parser
Alternatively, you can also get the latest source code from Github and install it manually.
🚀 Quick Start
Optimized Usage (Recommended)
For best performance, use the cached parse() function - up to 112x faster than the original API:
from user_agent_parser import parse
iphone_ua_str = "Mozilla/5.0 (iPhone; CPU iPhone OS 13_6 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) CriOS/92.0.4515.90 Mobile/15E148 Safari/604.1"
# Fast cached parsing - recommended for production
browser, browser_version, os, os_version, device_type, device_name, device_host = parse(iphone_ua_str)
print(f"Browser: {browser} {browser_version}") # Chrome 92.0.4515.90
print(f"OS: {os} {os_version}") # iOS 13_6
print(f"Device: {device_name}") # iPhone
print(f"Type: {device_type}") # Mobile
Traditional Usage
The original Parser class is still fully supported:
from user_agent_parser import Parser
iphone_ua_str = "Mozilla/5.0 (iPhone; CPU iPhone OS 13_6 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) CriOS/92.0.4515.90 Mobile/15E148 Safari/604.1"
parser = Parser(iphone_ua_str)
# Calling parser
browser, browser_version, os, os_version, device_type, device_name, device_host = parser()
# Or access properties directly
print(parser.browser) # Chrome
print(parser.device_name) # iPhone
print(parser.os) # iOS
🚀 Performance & Advanced Features
Performance Benchmarks
Based on comprehensive testing with 25+ modern user agents (2024-2025):
| Feature | Requests/Second | Accuracy | Memory Usage |
|---|---|---|---|
| Legacy Parser | 6,324 RPS | 80% | Baseline |
| Cached Parser | 219,420 RPS | 80% | Low |
| Advanced Engine | 33,380 RPS | 95% | 5.2 MB |
| Batch Processing | 88,258 RPS | 92% | Optimized |
🏆 14x Performance Improvement with advanced batch processing!
🧠 Advanced Features
ML-Inspired Pattern Matching
from user_agent_parser import analyze, DeviceCategory
# Advanced analysis with confidence scoring
result = analyze(user_agent, include_security=True, include_capabilities=True)
print(f"Device: {result.device_name}")
print(f"Category: {result.device_category.value}") # smartphone, tablet, desktop, etc.
print(f"Confidence: {result.confidence_score:.2f}")
print(f"Detection: {result.detection_confidence.value}") # high, medium, low
# Browser capabilities
print(f"WebGL Support: {result.capabilities.webgl_support}")
print(f"WebRTC Support: {result.capabilities.webrtc_support}")
print(f"Touch Support: {result.capabilities.touch_support}")
# Security insights
print(f"Privacy Mode: {result.security.privacy_mode}")
print(f"Ad Blocker: {result.security.has_adblocker}")
Batch Analytics & Processing
from user_agent_parser import batch_analyze, generate_analytics
# Process thousands of user agents in parallel
user_agents = ["Mozilla/5.0...", "Chrome/120.0...", ...]
results = batch_analyze(user_agents, max_workers=4)
# Generate comprehensive analytics
report = generate_analytics(user_agents, export_format='json')
print(f"Mobile traffic: {report.mobile_vs_desktop['mobile']} requests")
print(f"Top browser: {max(report.browser_distribution, key=report.browser_distribution.get)}")
print(f"Bot detection: {report.bot_detection_rate:.1%}")
Modern Device Support (2024-2025)
- iPhone 15 Series with A17 Pro chip detection
- Samsung Galaxy S24 Ultra with AI features
- Google Pixel 8 Pro with Tensor G3
- Gaming Consoles: PS5 Pro, Xbox Series X/S
- VR/AR: Meta Quest 3, Apple Vision Pro
- Smart Watches: Apple Watch Series 9, Galaxy Watch 6
Browser Capabilities Detection
- WebGPU, WebAssembly, WebXR support detection
- PWA capabilities (Service Workers, Push Notifications)
- Security features (COOP, COEP, Trusted Types)
- Performance APIs (Background Sync, Payment Request)
Comprehensive Analytics
# Export detailed reports
report = generate_analytics(user_agents, export_format='csv', filename='traffic_analysis')
# Key insights provided:
# • Browser/OS distribution
# • Mobile vs Desktop breakdown
# • Device brand analysis
# • Security/Privacy trends
# • Performance metrics
# • Bot detection rates
Perfect for high-throughput applications, web analytics, security analysis, and modern web development!
Running Tests
poetry run pytest
Changelog
See CHANGELOG.md for full version history.
Metadata
Release files for user-agent-parser 0.2.1
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | Provenance | Actions |
|---|---|---|---|---|
| user_agent_parser-0.2.1.tar.gz | 34.9 kB | Without provenance | Details for user_agent_parser-0.2.1.tar.gz |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Actions Reset |
|---|---|---|---|---|
| user_agent_parser-0.2.1-py3-none-any.whl | Python 3 | none | any | Details for user_agent_parser-0.2.1-py3-none-any.whl |
Total release size: 70.2 kB
Release files / user_agent_parser-0.2.1.tar.gz
| Download URL | user_agent_parser-0.2.1.tar.gz |
|---|---|
| Size | 34.9 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
74e0ff532a08dc753ab0e5d6eb687720e33ee65d4c2c9436451150f247d3ae19
|
|
BLAKE2b-256 checksum How to use checksums |
e8ed360b8323db5f863a073475d267ba5932985b68494c3f9c1efd6475f5ab47
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
poetry/2.3.2 CPython/3.13.2 Darwin/25.3.0
|
Release files / user_agent_parser-0.2.1-py3-none-any.whl
| Download URL | user_agent_parser-0.2.1-py3-none-any.whl |
|---|---|
| Size | 35.3 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
26dbde53923fa17cff18d8d96d5f0450cdac6f5e5e29ab59774cb1178b671520
|
|
BLAKE2b-256 checksum How to use checksums |
96c47b758cc99f9005b185596321c32a71c472675e40d77a57762110816d5d80
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
poetry/2.3.2 CPython/3.13.2 Darwin/25.3.0
|
Security for user-agent-parser 0.2.1
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
No provenance found
None of the files in this release were uploaded with provenance metadata.
A note on package security
PyPI is a repository for distributing packages, not a service for auditing them. While third-party security researchers and our staff do their best to detect and remove malicious packages, PyPI cannot guarantee the quality, security or suitability of any given package.
To learn more about protecting yourself from malicious actors, visit our package security documentation.