Skip to main content

A Fixed and Updated Alternative for fake-useragent

Project description

Alternate Fake UserAgent

Module Name Description
alt-fake-useragent Up to date and Fixed version of fake-useragent which is a simple useragent faker with real world database

image

Features

Installation

pip install alt-fake-useragent

Usage

from fake_useragent import UserAgent
ua = UserAgent()

ua.ie
# Mozilla/5.0 (Windows; U; MSIE 9.0; Windows NT 9.0; en-US);

ua.msie
# Mozilla/5.0 (compatible; MSIE 10.0; Macintosh; Intel Mac OS X 10_7_3; Trident/6.0)'

ua['Internet Explorer']
# Mozilla/5.0 (compatible; MSIE 8.0; Windows NT 6.1; Trident/4.0; GTB7.4; InfoPath.2; SV1; .NET CLR 3.3.69573; WOW64; en-US)

ua.opera
# Opera/9.80 (X11; Linux i686; U; ru) Presto/2.8.131 Version/11.11

ua.chrome
# Mozilla/5.0 (Windows NT 6.1) AppleWebKit/537.2 (KHTML, like Gecko) Chrome/22.0.1216.0 Safari/537.2'

ua.google
# Mozilla/5.0 (Macintosh; Intel Mac OS X 10_7_4) AppleWebKit/537.13 (KHTML, like Gecko) Chrome/24.0.1290.1 Safari/537.13

ua['google chrome']
# Mozilla/5.0 (X11; CrOS i686 2268.111.0) AppleWebKit/536.11 (KHTML, like Gecko) Chrome/20.0.1132.57 Safari/536.11

ua.firefox
# Mozilla/5.0 (Windows NT 6.2; Win64; x64; rv:16.0.1) Gecko/20121011 Firefox/16.0.1

ua.ff
# Mozilla/5.0 (X11; Ubuntu; Linux i686; rv:15.0) Gecko/20100101 Firefox/15.0.1

ua.safari
# Mozilla/5.0 (iPad; CPU OS 6_0 like Mac OS X) AppleWebKit/536.26 (KHTML, like Gecko) Version/6.0 Mobile/10A5355d Safari/8536.25

ua.mobile
# Mozilla/5.0 (Android 2.2; Windows; U; Windows NT 6.1; en-US) AppleWebKit/533.19.4 (KHTML, like Gecko) Version/5.0.3 Safari/533.19.4

ua.desktop
# Mozilla/5.0 (Macintosh; U; Intel Mac OS X 10_6_6; de-de) AppleWebKit/533.20.25 (KHTML, like Gecko) Version/5.0.4 Safari/533.20.27

ua.random
# and the best one, random via real world browser usage statistic

Notes

fake-useragent store collected data at your os temp dir, like /tmp

If You want to update saved database just:

from fake_useragent import UserAgent
ua = UserAgent()
ua.update()

If You don't want cache database or no writable file system:

from fake_useragent import UserAgent
ua = UserAgent(cache=False)

Sometimes, useragentstring.com or w3schools.com changes their html, or down, in such case fake-useragent uses heroku fallback

If You don't want to use hosted cache server (version 0.1.5 added)

from fake_useragent import UserAgent
ua = UserAgent(use_cache_server=False)

In very rare case, if hosted cache server and sources will be unavailable fake-useragent wont be able to download data: (version 0.1.3 added)

from fake_useragent import UserAgent
ua = UserAgent()

# Traceback (most recent call last):
#   ...
# fake_useragent.errors.FakeUserAgentError

# You can catch it via

from fake_useragent import FakeUserAgentError

try:
    ua = UserAgent()
except FakeUserAgentError:
    pass

If You will try to get unknown browser: (version 0.1.3 changed)

from fake_useragent import UserAgent
ua = UserAgent()
ua.best_browser
# Traceback (most recent call last):
#   ...
# fake_useragent.errors.FakeUserAgentError

You can completely disable ANY annoying exception with adding fallback: (version 0.1.4 added)

import fake_useragent

ua = fake_useragent.UserAgent(fallback='Your favorite Browser')
# in case if something went wrong, one more time it is REALLY!!! rare case
ua.random == 'Your favorite Browser'

Want to control location of data file? (version 0.1.4 added)

import fake_useragent

# I am STRONGLY!!! recommend to use version suffix
location = '/home/user/fake_useragent%s.json' % fake_useragent.VERSION

ua = fake_useragent.UserAgent(path=location)
ua.random

If you need to safe some attributes from overriding them in UserAgent by __getattr__ method use safe_attrs you can pass there attributes names. At least this will prevent you from raising FakeUserAgentError when attribute not found.

For example, when using fake_useragent with injections you need to:

import fake_useragent

ua = fake_useragent.UserAgent(safe_attrs=('__injections__',))

Please, do not use if you don't understand why you need this. This is magic for rarely extreme case.

Experiencing issues???

Make sure that You using latest version!!!

pip install -U fake-useragent

Check version via python console: (version 0.1.4 added)

import fake_useragent

print(fake_useragent.VERSION)

And You are always welcome to post issues

Please do not forget mention version that You are using

Tests

pip install tox
tox

Changelog

    • 0.2.1 December 8, 2021

      • Added mobile and desktop selectors
    • 0.2.0 December 6, 2021

      • Fixed all Known Bugs 🐛
      • Bug 🐛 Fixed : Error occurred during loading data.
    • 0.1.11 October 4, 2018

      • moved s3 + cloudfront fallback to heroku.com, cuz someone from Florida did ~25M requests last month
    • 0.1.10 February 11, 2018

      • Minor fix docs cloudfront url
    • 0.1.9 February 11, 2018

      • fix w3schools.com renamed IE/Edge to Edge/IE
      • moved heroku.com fallback to s3 + cloudfront
      • stop testing Python3.3 and pypy
    • 0.1.8 November 2, 2017

      • fix useragentstring.com Can't connect to local MySQL server through socket
    • 0.1.7 April 2, 2017

      • fix broken README.rst
    • 0.1.6 April 2, 2017

      • fixes bug use_cache_server do not affected anything
      • w3schools.com moved to https
      • verify_ssl options added, by default it is True (urllib.urlopen ssl context for Python 2.7.9- and 3.4.3- is not supported)
    • 0.1.5 February 28, 2017

      • added ua.edge alias to Internet Explorer
      • w3schools.com starts displaying Edge statistic
      • Python 2.6 is not tested anymore
      • use_cache_server option added
      • Increased fake_useragent.settings.HTTP_TIMEOUT to 5 seconds
    • 0.1.4 December 14, 2016

      • Added custom data file location support
      • Added fallback browser support, in case of unavailable data sources
      • Added alias fake_useragent.FakeUserAgent for fake_useragent.UserAgent
      • Added alias fake_useragent.UserAgentError for fake_useragent.FakeUserAgentError
      • Reduced fake_useragent.settings.HTTP_TIMEOUT to 3 seconds
      • Started migration to new data file format
      • Simplified a lot 4+ years out of date code
      • Better thread/greenlet safety
      • Added verbose logging
      • Added safe_attrs for prevent overriding by __getattr__
    • 0.1.3 November 24, 2016

      • Added hosted data file, when remote services is unavailable
      • Raises fake_useragent.errors.FakeUserAgentError in case when there is not way to download data
      • Raises fake_useragent.errors.FakeUserAgentError instead of None in case of unknown browser
      • Added gevent.sleep support in gevent patched environment when trying to download data

Authors

You can visit authors page

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

alt-fake-useragent-0.2.1.tar.gz (16.8 kB view details)

Uploaded Source

Built Distribution

alt_fake_useragent-0.2.1-py3-none-any.whl (20.5 kB view details)

Uploaded Python 3

File details

Details for the file alt-fake-useragent-0.2.1.tar.gz.

File metadata

  • Download URL: alt-fake-useragent-0.2.1.tar.gz
  • Upload date:
  • Size: 16.8 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.7.1 importlib_metadata/4.8.2 pkginfo/1.8.2 requests/2.26.0 requests-toolbelt/0.9.1 tqdm/4.62.3 CPython/3.10.0

File hashes

Hashes for alt-fake-useragent-0.2.1.tar.gz
Algorithm Hash digest
SHA256 19c4b12a559faf226502ecc54dc800a5fbf82ab1993e29a3a5b8d64cc5418ae5
MD5 aff32378e3c1f7c0649661106da49663
BLAKE2b-256 cdf58b8a73df96020b14e1d4fa1fcf61a135cea813fe1d6ae2a654abea9fcbf5

See more details on using hashes here.

File details

Details for the file alt_fake_useragent-0.2.1-py3-none-any.whl.

File metadata

  • Download URL: alt_fake_useragent-0.2.1-py3-none-any.whl
  • Upload date:
  • Size: 20.5 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.7.1 importlib_metadata/4.8.2 pkginfo/1.8.2 requests/2.26.0 requests-toolbelt/0.9.1 tqdm/4.62.3 CPython/3.10.0

File hashes

Hashes for alt_fake_useragent-0.2.1-py3-none-any.whl
Algorithm Hash digest
SHA256 30038cfa60447895886c6e2db90c79439d525474a805119d703a6b6c708ae89e
MD5 8d424d13808cf81f303add803e2717db
BLAKE2b-256 0061a43b5e0595f8ac91b0ca0df0ade0c27559f7d638874601344f56bcdb9ec6

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