Skip to content

robd003/uap-python-up2date

This branch is 15 commits ahead of, 64 commits behind ua-parser/uap-python:master.

Folders and files

NameName
Last commit message
Last commit date

Latest commit

ef45171 · Sep 23, 2023
Sep 23, 2023
May 3, 2023
May 2, 2023
Aug 7, 2023
Dec 21, 2015
Feb 13, 2019
Apr 5, 2023
Apr 30, 2023
Apr 30, 2023
Aug 7, 2023
Aug 7, 2023
Apr 30, 2023
Apr 30, 2023
May 4, 2023

Repository files navigation

uap-python

An up to date python implementation of the UA Parser (https://github.com/ua-parser, formerly https://github.com/tobie/ua-parser)

Build Status

CI on the master branch

Installing

Install via pip

Just run:

$ pip install ua-parser-up2date

Manual install

In the top-level directory run:

$ python setup.py install

Change Log

Because this repo is mostly a python wrapper for the User Agent String Parser repo (https://github.com/ua-parser/uap-core), the changes made to this repo are best described by the update diffs in that project. Please see the diffs for this submodule (https://github.com/ua-parser/uap-core/releases) for a list of what has changed between versions of this package.

Getting Started

Retrieve data on a user-agent string

>>> from ua_parser import user_agent_parser
>>> import pprint
>>> pp = pprint.PrettyPrinter(indent=4)
>>> 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'
>>> parsed_string = user_agent_parser.Parse(ua_string)
>>> pp.pprint(parsed_string)
{   'device': {'brand': 'Apple', 'family': 'Mac', 'model': 'Mac'},
    'os': {   'family': 'Mac OS X',
              'major': '10',
              'minor': '9',
              'patch': '4',
              'patch_minor': None},
    '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',
    'user_agent': {   'family': 'Chrome',
                      'major': '41',
                      'minor': '0',
                      'patch': '2272'}}

Extract browser data from user-agent string

>>> from ua_parser import user_agent_parser
>>> import pprint
>>> pp = pprint.PrettyPrinter(indent=4)
>>> 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'
>>> parsed_string = user_agent_parser.ParseUserAgent(ua_string)
>>> pp.pprint(parsed_string)
{'family': 'Chrome', 'major': '41', 'minor': '0', 'patch': '2272'}

⚠️Before 0.15, the convenience parsers (ParseUserAgent, ParseOs, and ParseDevice) were not cached, which could result in degraded performances when parsing large amounts of identical user-agents (which might occur for real-world datasets).

For these versions (up to 0.10 included), prefer using Parse and extracting the sub-component you need from the resulting dictionary.

Extract OS information from user-agent string

>>> from ua_parser import user_agent_parser
>>> import pprint
>>> pp = pprint.PrettyPrinter(indent=4)
>>> 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'
>>> parsed_string = user_agent_parser.ParseOS(ua_string)
>>> pp.pprint(parsed_string)
{   'family': 'Mac OS X',
    'major': '10',
    'minor': '9',
    'patch': '4',
    'patch_minor': None}

Extract Device information from user-agent string

>>> from ua_parser import user_agent_parser
>>> import pprint
>>> pp = pprint.PrettyPrinter(indent=4)
>>> 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'
>>> parsed_string = user_agent_parser.ParseDevice(ua_string)
>>> pp.pprint(parsed_string)
{'brand': 'Apple', 'family': 'Mac', 'model': 'Mac'}

About

Python implementation of ua-parser

Resources

License

Stars

Watchers

Forks

Packages

No packages published

Languages

  • Python 99.1%
  • Makefile 0.9%