Skip to main content

Python port of Browserscope's user agent parser

Project description

Official python implementation of the User Agent String Parser project.

Build Status

CI on the master branch Documentation Status

Installing

Add ua-parser[regex] to your project’s dependencies, or run

$ pip install 'ua-parser[regex]'

to install in the current environment.

ua-parser supports CPython 3.10 and newer, recent pypy (supporting 3.10), and GraalPy 25.

Quick Start

Retrieve all data on a user-agent string

>>> from ua_parser import parse
>>> ua_string = 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_9_4) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/41.0.2272.104 Safari/537.36'
>>> parse(ua_string) # doctest: +NORMALIZE_WHITESPACE, +ELLIPSIS
Result(user_agent=UserAgent(family='Chrome',
                            major='41',
                            minor='0',
                            patch='2272',
                            patch_minor='104'),
       os=OS(family='Mac OS X',
             major='10',
             minor='9',
             patch='4',
             patch_minor=None),
       device=Device(family='Mac',
                     brand='Apple',
                     model='Mac'),
       string='Mozilla/5.0 (Macintosh; Intel Mac OS...

Any datum not found in the user agent string is set to None:

>>> parse("")
Result(user_agent=None, os=None, device=None, string='')

Extract only browser data from user-agent string

>>> from ua_parser import parse_user_agent
>>> ua_string = 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_9_4) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/41.0.2272.104 Safari/537.36'
>>> parse_user_agent(ua_string)
UserAgent(family='Chrome', major='41', minor='0', patch='2272', patch_minor='104')

For specific domains, a match failure just returns None:

>>> parse_user_agent("")

Extract OS information from user-agent string

>>> from ua_parser import parse_os
>>> ua_string = 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_9_4) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/41.0.2272.104 Safari/537.36'
>>> parse_os(ua_string)
OS(family='Mac OS X', major='10', minor='9', patch='4', patch_minor=None)

Extract device information from user-agent string

>>> from ua_parser import parse_device
>>> ua_string = 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_9_4) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/41.0.2272.104 Safari/537.36'
>>> parse_device(ua_string)
Device(family='Mac', brand='Apple', model='Mac')

Upgrading

Upgrading from 0.x? See the upgrade guide.

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

ua_parser-1.0.2.tar.gz (33.2 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

ua_parser-1.0.2-py3-none-any.whl (31.2 kB view details)

Uploaded Python 3

File details

Details for the file ua_parser-1.0.2.tar.gz.

File metadata

  • Download URL: ua_parser-1.0.2.tar.gz
  • Upload date:
  • Size: 33.2 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.7

File hashes

Hashes for ua_parser-1.0.2.tar.gz
Algorithm Hash digest
SHA256 bab404ad42fb37f943107da2f6003ffc79724d11cc95076a7a539513371779da
MD5 121b88ffebee49bc0f4fe31ae73683ca
BLAKE2b-256 90985e4b52d772a048af122a6fc5ce365c311efb9f5e79c55fd4fdd7c9f59e83

See more details on using hashes here.

Provenance

The following attestation bundles were made for ua_parser-1.0.2.tar.gz:

Publisher: release-main.yml on ua-parser/uap-python

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file ua_parser-1.0.2-py3-none-any.whl.

File metadata

  • Download URL: ua_parser-1.0.2-py3-none-any.whl
  • Upload date:
  • Size: 31.2 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.7

File hashes

Hashes for ua_parser-1.0.2-py3-none-any.whl
Algorithm Hash digest
SHA256 0f8e6d0484af2a9ff804bba5a4fe696e87c028eaba98ad9a7dfae873fef7788a
MD5 5281f6e5347304d52e9da2ba71d1cf0a
BLAKE2b-256 a97c6367995ff57aaa2d9e1055adbaec2519cf5a979780a83a93fdf8c6ec37be

See more details on using hashes here.

Provenance

The following attestation bundles were made for ua_parser-1.0.2-py3-none-any.whl:

Publisher: release-main.yml on ua-parser/uap-python

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page