Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/ua-parser/uap-python
Python implementation of ua-parser
https://github.com/ua-parser/uap-python
python3 user-agent user-agent-parser user-agent-parsing
Last synced: about 2 months ago
JSON representation
Python implementation of ua-parser
- Host: GitHub
- URL: https://github.com/ua-parser/uap-python
- Owner: ua-parser
- License: apache-2.0
- Created: 2014-11-09T04:09:44.000Z (almost 10 years ago)
- Default Branch: master
- Last Pushed: 2024-04-21T19:27:21.000Z (5 months ago)
- Last Synced: 2024-05-23T00:36:58.844Z (4 months ago)
- Topics: python3, user-agent, user-agent-parser, user-agent-parsing
- Language: Python
- Homepage:
- Size: 853 KB
- Stars: 546
- Watchers: 31
- Forks: 148
- Open Issues: 13
-
Metadata Files:
- Readme: README.rst
- License: LICENSE
Awesome Lists containing this project
README
uap-python
==========Official python implementation of the `User Agent String
Parser `_ project.Build Status
------------.. image:: https://github.com/ua-parser/uap-python/actions/workflows/ci.yml/badge.svg
:alt: CI on the master branch⚠️ THIS IS NOT THE DOCUMENTATION YOU ARE LOOKING FOR (probably) ⚠️
------------------------------------------------------------------This is the readme for the `future 1.0 `_.
For the current releases, see `the 0.x branch
`_.Installing
----------Just add ``ua-parser`` to your project's dependencies, or run
.. code-block:: sh
$ pip install ua-parser
to install in the current environment.
Installing `google-re2 `_ is
*strongly* recommended as it leads to *significantly* better
performances. This can be done directly via the ``re2`` optional
dependency:.. code-block:: sh
$ pip install 'ua_parser[re2]'
If ``re2`` is available, ``ua-parser`` will simply use it by default
instead of the pure-python resolver.Quick Start
-----------Retrieve all data on a user-agent string
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~.. code-block:: python
>>> 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
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~.. code-block:: python
>>> 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
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~.. code-block:: python
>>> 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
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~.. code-block:: python
>>> 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')