Metadata-Version: 1.1 Name: fake-useragent Version: 0.1.11 Summary: Up to date simple useragent faker with real world database Home-page: https://github.com/hellysmile/fake-useragent Author: hellysmile@gmail.com Author-email: hellysmile@gmail.com License: UNKNOWN Description: fake-useragent ============== :info: Up to date simple useragent faker with real world database .. image:: https://img.shields.io/travis/hellysmile/fake-useragent.svg :target: https://travis-ci.org/hellysmile/fake-useragent .. image:: https://codecov.io/gh/hellysmile/fake-useragent/branch/master/graph/badge.svg :target: https://codecov.io/gh/hellysmile/fake-useragent .. image:: https://landscape.io/github/hellysmile/fake-useragent/master/landscape.svg?style=flat :target: https://landscape.io/github/hellysmile/fake-useragent/master .. image:: https://img.shields.io/pypi/v/fake-useragent.svg :target: https://pypi.python.org/pypi/fake-useragent Features ******** * grabs up to date ``useragent`` from `useragentstring.com `_ * randomize with real world statistic via `w3schools.com `_ Installation ------------ .. code-block:: shell pip install fake-useragent Usage ----- .. code-block:: python 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 # and the best one, random via real world browser usage statistic ua.random Notes ----- ``fake-useragent`` store collected data at your os temp dir, like ``/tmp`` If You want to update saved database just: .. code-block:: python from fake_useragent import UserAgent ua = UserAgent() ua.update() If You don't want cache database or no writable file system: .. code-block:: python 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) .. code-block:: python 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) .. code-block:: python 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) .. code-block:: python 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) .. code-block:: python 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) .. code-block:: python 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: .. code-block:: python 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!!! .. code-block:: shell pip install -U fake-useragent Check version via python console: (version 0.1.4 added) .. code-block:: python 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 ----- .. code-block:: console pip install tox tox Changelog --------- * 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 * X.X.X xxxxxxx xx, xxxx - xxxxx ????? Authors ------- You can visit `authors page `_ Keywords: user,agent,user agent,useragent,fake,fake useragent,fake user agent Platform: UNKNOWN Classifier: Development Status :: 5 - Production/Stable Classifier: Intended Audience :: Developers Classifier: License :: OSI Approved :: Apache Software License Classifier: Operating System :: POSIX Classifier: Operating System :: MacOS :: MacOS X Classifier: Operating System :: Microsoft :: Windows Classifier: Programming Language :: Python Classifier: Programming Language :: Python :: 2 Classifier: Programming Language :: Python :: 3 Classifier: Operating System :: OS Independent