Skip to main content

Fast and reliable User Agent parser for Python

Project description

# Udger client for Python (data ver. 3)
Local parser is very fast and accurate useragent string detection solution. Enables developers to locally install and integrate a highly-scalable product.
We provide the detection of the devices (personal computer, tablet, Smart TV, Game console etc.), operating system and client SW type (browser, e-mail client etc.).
It also provides information about IP addresses (Public proxies, VPN services, Tor exit nodes, Fake crawlers, Web scrapers .. etc.)


- Tested with more the 50.000 unique user agents.
- Up to date data provided by https://udger.com/
- Support for Python 3

### Install using pip

$ pip install udger


### Install from git repo

$ git clone https://github.com/udger/udger-python
$ cd udger-python/
# python setup.py install


### Usage

$ python
>>> from pprint import pprint
>>> from udger import Udger
>>> udger = Udger()
>>>
>>> result = udger.parse_ua(
... 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_11_2) AppleWebKit/601.3.9 (KHTML, like Gecko) Version/9.0.2 Safari/601.3.9'
... )
>>> pprint(result)
{'crawler_category': None,
'crawler_category_code': None,
'crawler_last_seen': None,
'crawler_respect_robotstxt': None,
'device_class': 'Desktop',
'device_class_code': 'desktop',
'device_class_icon': 'desktop.png',
'device_class_icon_big': 'desktop_big.png',
'device_class_info_url': 'https://udger.com/resources/ua-list/device-detail?device=Desktop',
'os': 'OS X 10.11 El Capitan',
'os_code': 'osx_10_11',
'os_family': 'OS X',
'os_family_code': 'osx',
'os_family_vendor': 'Apple Computer, Inc.',
'os_family_vendor_code': 'apple_inc',
'os_family_vendor_homepage': 'http://www.apple.com/',
'os_homepage': 'https://en.wikipedia.org/wiki/OS_X_El_Capitan',
'os_icon': 'macosx.png',
'os_icon_big': 'macosx_big.png',
'os_info_url': 'https://udger.com/resources/ua-list/os-detail?os=OS%20X%2010.11%20El%20Capitan',
'ua': 'Safari 9.0.2',
'ua_class': 'Browser',
'ua_class_code': 'browser',
'ua_engine': 'WebKit',
'ua_family': 'Safari',
'ua_family_code': 'safari',
'ua_family_homepage': 'https://en.wikipedia.org/wiki/Safari_%28web_browser%29',
'ua_family_icon': 'safari.png',
'ua_family_icon_big': 'safari_big.png',
'ua_family_info_url': 'https://udger.com/resources/ua-list/browser-detail?browser=Safari',
'ua_family_vendor': 'Apple Inc.',
'ua_family_vendor_code': 'apple_inc',
'ua_family_vendor_homepage': 'http://www.apple.com/',
'ua_string': 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_11_2) '
'AppleWebKit/601.3.9 (KHTML, like Gecko) Version/9.0.2 '
'Safari/601.3.9',
'ua_uptodate_current_version': '9',
'ua_version': '9.0.2',
'ua_version_major': '9'}
>>>
>>> result = udger.parse_ua('Some thing')
>>> pprint(result)
{'crawler_category': None,
'crawler_category_code': None,
'crawler_last_seen': None,
'crawler_respect_robotstxt': None,
'device_class': None,
'device_class_code': None,
'device_class_icon': None,
'device_class_icon_big': None,
'device_class_info_url': None,
'os': None,
'os_code': None,
'os_family': None,
'os_family_code': None,
'os_family_vendor': None,
'os_family_vendor_code': None,
'os_family_vendor_homepage': None,
'os_homepage': None,
'os_icon': None,
'os_icon_big': None,
'os_info_url': None,
'ua': None,
'ua_class': 'Unrecognized',
'ua_class_code': 'unrecognized',
'ua_engine': None,
'ua_family': None,
'ua_family_code': None,
'ua_family_homepage': None,
'ua_family_icon': None,
'ua_family_icon_big': None,
'ua_family_info_url': None,
'ua_family_vendor': None,
'ua_family_vendor_code': None,
'ua_family_vendor_homepage': None,
'ua_string': 'Some thing',
'ua_uptodate_current_version': None,
'ua_version': None,
'ua_version_major': None}
>>>
>>> result = udger.parse_ip('69.89.31.120')
>>> pprint(result)
{'crawler_category': None,
'crawler_category_code': None,
'crawler_family': None,
'crawler_family_code': None,
'crawler_family_homepage': None,
'crawler_family_icon': None,
'crawler_family_info_url': None,
'crawler_family_vendor': None,
'crawler_family_vendor_code': None,
'crawler_family_vendor_homepage': None,
'crawler_last_seen': None,
'crawler_name': None,
'crawler_respect_robotstxt': None,
'crawler_ver': None,
'crawler_ver_major': None,
'datacenter_homepage': 'https://www.bluehost.com/',
'datacenter_name': 'Bluehost Inc.',
'datacenter_name_code': 'bluehost',
'ip': '69.89.31.120',
'ip_city': 'Provo',
'ip_classification': 'Web scraper',
'ip_classification_code': 'web_scraper',
'ip_country': 'United States',
'ip_country_code': 'US',
'ip_hostname': 'box320.bluehost.com',
'ip_last_seen': '2016-04-08 09:25:51',
'ip_ver': 4}
>>>
>>> result = udger.parse_ip('108.61.199.93')
>>> pprint(result)
{'crawler_category': 'Site monitor',
'crawler_category_code': 'site_monitor',
'crawler_family': 'PINGOMETER',
'crawler_family_code': 'pingometer',
'crawler_family_homepage': '',
'crawler_family_icon': 'bot_pingometer.png',
'crawler_family_info_url': 'https://udger.com/resources/ua-list/bot-detail?bot=PINGOMETER#id20112',
'crawler_family_vendor': 'Pingometer, LLC',
'crawler_family_vendor_code': 'pingometer_llc',
'crawler_family_vendor_homepage': 'http://pingometer.com/',
'crawler_last_seen': '2016-04-08 09:15:47',
'crawler_name': 'PINGOMETER',
'crawler_respect_robotstxt': 'no',
'crawler_ver': '',
'crawler_ver_major': '',
'datacenter_homepage': 'https://www.choopa.com/',
'datacenter_name': 'Choopa, LLC.',
'datacenter_name_code': 'choopa',
'ip': '108.61.199.93',
'ip_city': 'Amsterdam',
'ip_classification': 'Crawler',
'ip_classification_code': 'crawler',
'ip_country': 'Netherlands',
'ip_country_code': 'NL',
'ip_hostname': '108.61.199.93.vultr.com',
'ip_last_seen': '2016-04-08 09:00:40',
'ip_ver': 4}


### Forked from

Based on the code by Jure Ham (jure.ham@zemanta.com),
https://github.com/hamaxx/uasparser2

Previously, a python version of https://github.com/kaittodesk/uasparser2
by Hicro Kee (http://hicrokee.com) email: hicrokee AT gmail DOT com
and modified by Michal Molhanec http://molhanec.net


### Author
The Udger.com Team (info@udger.com)

### old v1 format
If you still use the previous format of the db (v1), please see the branch old_format_v1

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

udger-3.0.tar.gz (8.4 kB view details)

Uploaded Source

Built Distribution

udger-3.0-py2-none-any.whl (9.5 kB view details)

Uploaded Python 2

File details

Details for the file udger-3.0.tar.gz.

File metadata

  • Download URL: udger-3.0.tar.gz
  • Upload date:
  • Size: 8.4 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No

File hashes

Hashes for udger-3.0.tar.gz
Algorithm Hash digest
SHA256 6bd25ff330cc285d0ff784d8297b7651902444ecae17bc778fba1791c62a2edf
MD5 66fa42fb0be926fbe14509e1a8b909c9
BLAKE2b-256 870b89f890954891899e5a4e5a8528c27cf8f40400d5d847036e7e84f0c6e8ed

See more details on using hashes here.

File details

Details for the file udger-3.0-py2-none-any.whl.

File metadata

File hashes

Hashes for udger-3.0-py2-none-any.whl
Algorithm Hash digest
SHA256 00ef68bf50deb051a188eaf6d30be65cdb297c2527b91d7f4b0fbc933e5c34e8
MD5 bbacfdacecd65f29f71585bd3db3b0ce
BLAKE2b-256 5592489d101663d4242650a0c70a5307d4f321679abbdb8fa1023edb7b72482d

See more details on using hashes here.

Supported by

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