User Agent Parser for Python

1.0.1 · active · verified Sun Mar 29

ua-parser is a Python port of Browserscope's user agent parser. It provides functionality to detect details like browser, operating system, CPU, and device type/model from a given User-Agent string. The library is actively maintained, with its latest version being 1.0.1, and releases are made to keep up with user agent string changes, although core regex updates can sometimes require specific attention.

Warnings

Install

Imports

Quickstart

This quickstart demonstrates how to use `ua-parser` to parse common User-Agent strings and extract information about the browser, operating system, and device. The `parse` function returns a Result object containing detailed attributes.

from ua_parser import parse

# Example User-Agent strings
ua_string_desktop = 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/123.0.0.0 Safari/537.36'
ua_string_mobile = 'Mozilla/5.0 (iPhone; CPU iPhone OS 17_4_1 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/17.4.1 Mobile/15E148 Safari/604.1'

# Parse a desktop User-Agent string
parsed_ua_desktop = parse(ua_string_desktop)
print(f"Desktop UA: {ua_string_desktop}")
print(f"  Browser: {parsed_ua_desktop.user_agent.family} {parsed_ua_desktop.user_agent.major}.{parsed_ua_desktop.user_agent.minor}")
print(f"  OS: {parsed_ua_desktop.os.family} {parsed_ua_desktop.os.major}.{parsed_ua_desktop.os.minor}")
print(f"  Device: {parsed_ua_desktop.device.family}\n")

# Parse a mobile User-Agent string
parsed_ua_mobile = parse(ua_string_mobile)
print(f"Mobile UA: {ua_string_mobile}")
print(f"  Browser: {parsed_ua_mobile.user_agent.family} {parsed_ua_mobile.user_agent.major}.{parsed_ua_mobile.user_agent.minor}")
print(f"  OS: {parsed_ua_mobile.os.family} {parsed_ua_mobile.os.major}.{parsed_ua_mobile.os.minor}")
print(f"  Device: {parsed_ua_mobile.device.family}")

view raw JSON →