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 |
Features
- Grabs up to date
useragentfrom useragentstring.com - Randomize with real world statistic via w3schools.com
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.comrenamed IE/Edge to Edge/IE - moved heroku.com fallback to s3 + cloudfront
- stop testing Python3.3 and pypy
- fix
-
-
-
0.1.8 November 2, 2017
- fix
useragentstring.comCan't connect to local MySQL server through socket
- fix
-
-
-
0.1.7 April 2, 2017
- fix broken README.rst
-
-
-
0.1.6 April 2, 2017
- fixes bug
use_cache_serverdo not affected anything - w3schools.com
moved to
https verify_ssloptions added, by default it isTrue(urllib.urlopenssl context for Python 2.7.9- and 3.4.3- is not supported)
- fixes bug
-
-
-
0.1.5 February 28, 2017
- added
ua.edgealias to Internet Explorer - w3schools.com starts displaying
Edgestatistic - Python 2.6 is not tested anymore
use_cache_serveroption added- Increased
fake_useragent.settings.HTTP_TIMEOUTto 5 seconds
- added
-
-
-
0.1.4 December 14, 2016
- Added custom data file location support
- Added
fallbackbrowser support, in case of unavailable data sources - Added alias
fake_useragent.FakeUserAgentforfake_useragent.UserAgent - Added alias
fake_useragent.UserAgentErrorforfake_useragent.FakeUserAgentError - Reduced
fake_useragent.settings.HTTP_TIMEOUTto 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_attrsfor prevent overriding by__getattr__
-
-
-
0.1.3 November 24, 2016
- Added hosted data file, when remote services is unavailable
- Raises
fake_useragent.errors.FakeUserAgentErrorin case when there is not way to download data - Raises
fake_useragent.errors.FakeUserAgentErrorinstead ofNonein case of unknown browser - Added
gevent.sleepsupport ingeventpatched environment when trying to download data
-
Authors
You can visit authors page
Release files for alt-fake-useragent 0.2.1
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | |
|---|---|---|---|
| alt-fake-useragent-0.2.1.tar.gz | 16.8 kB | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| alt_fake_useragent-0.2.1-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 37.3 kB
Release files / alt-fake-useragent-0.2.1.tar.gz
| Download URL | alt-fake-useragent-0.2.1.tar.gz |
|---|---|
| Size | 16.8 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
19c4b12a559faf226502ecc54dc800a5fbf82ab1993e29a3a5b8d64cc5418ae5
|
|
BLAKE2b-256 checksum How to use checksums |
cdf58b8a73df96020b14e1d4fa1fcf61a135cea813fe1d6ae2a654abea9fcbf5
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is 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
|
Release files / alt_fake_useragent-0.2.1-py3-none-any.whl
| Download URL | alt_fake_useragent-0.2.1-py3-none-any.whl |
|---|---|
| Size | 20.5 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
30038cfa60447895886c6e2db90c79439d525474a805119d703a6b6c708ae89e
|
|
BLAKE2b-256 checksum How to use checksums |
0061a43b5e0595f8ac91b0ca0df0ade0c27559f7d638874601344f56bcdb9ec6
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is 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
|