Современный простой фейкер пользовательского агента с реальной базой данных.
desktop
, tablet
и/или mobile
UA)useragent
, percent
, type
, device_brand
, browser
, browser_version
, os
, os_version
и platform
pip install fake-useragent
Или, если у вас установлено несколько версий Python/pip, используйте pip3
:
pip3 install fake-useragent
Ниже приведены простые примеры использования. Более сложные варианты использования см. также в следующих главах этого файла сведений:
from fake_useragent import UserAgent
ua = UserAgent ()
# Get a random browser user-agent string
print ( ua . random )
# Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:132.0) Gecko/20100101 Firefox/132.0
# Or get user-agent string from a specific browser
print ( ua . chrome )
# Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/131.0.0.0 Safari/537.36
print ( ua . google )
# Mozilla/5.0 (iPhone; CPU iPhone OS 18_1 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) GSA/343.0.695551749 Mobile/15E148 Safari/604.1
print ( ua [ 'Chrome' ])
# Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/131.0.0.0 Safari/537.36
print ( ua . firefox )
# Mozilla/5.0 (Android 14; Mobile; rv:133.0) Gecko/133.0 Firefox/133.0
print ( ua . ff )
# Mozilla/5.0 (X11; Ubuntu; Linux x86_64; rv:132.0) Gecko/20100101 Firefox/132.0
print ( ua . safari )
# Mozilla/5.0 (iPhone; CPU iPhone OS 17_6_1 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/17.6 Mobile/15E148 Safari/604.1 Ddg/17.6
print ( ua . opera )
# Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/128.0.0.0 Safari/537.36 OPR/114.0.0.0
print ( ua . edge )
# Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/125.0.0.0 Safari/537.36 Edg/125.0.0.0
Дополнительные функции, которые fake-useragent предлагает начиная с версии 1.2.0.
Если вы хотите указать свой собственный список браузеров, вы можете сделать это с помощью аргумента browsers
(по умолчанию: ["Google", "Chrome", "Firefox", "Edge", "Opera"," Safari", "Android", "Yandex Browser", "Samsung Internet", "Opera Mobile", "Mobile Safari", "Firefox Mobile", "Firefox iOS", "Chrome Mobile", "Chrome Mobile iOS", "Mobile Safari UI/WKWebView", "Edge Mobile", "DuckDuckGo Mobile", "MiuiBrowser", "Whale", "Twitter", "Facebook", "Amazon Silk"]
.
Этот пример вернет только случайные пользовательские агенты из Edge и Chrome:
from fake_useragent import UserAgent
ua = UserAgent ( browsers = [ 'Edge' , 'Chrome' ])
ua . random
Примечание. Fakeuser-агент известен в браузерах: Chrome, Edge, Firefox, Safari, Opera, Android, Opera Mobile, Mobile Safari, Firefox Mobile, Firefox iOS, Chrome Mobile, Chrome Mobile iOS и других (см. полный список выше).
Примечание № 2. Начиная с fakeuser-agent версии 2.0.0, имена браузеров чувствительны к регистру!
Если вы хотите указать свои собственные операционные системы, вы можете сделать это с помощью аргумента os
(по умолчанию: ["Windows", "Linux", "Ubuntu", "Chrome OS", "Mac OS X", "Android", "iOS"]
).
В этом примере вы получите обратно только пользовательские агенты Linux:
from fake_useragent import UserAgent
ua = UserAgent ( os = 'Linux' )
ua . random
Примечание. Начиная с fakeuser-agent версии 2.0.0, имена ОС чувствительны к регистру!
Вы также можете указать тип платформ, которые вы хотите использовать, вы можете сделать это с помощью аргумента platforms
(по умолчанию — ["desktop", "mobile", "tablet"]
. Этот пример вернет только случайные пользовательские агенты с мобильного устройства. устройство:
from fake_useragent import UserAgent
ua = UserAgent ( platforms = 'desktop' )
ua . random
Если вы хотите вернуть более свежие строки пользовательского агента, вы можете поиграть с аргументом min_version
(по умолчанию: 0.0
, что означает, что все пользовательские агенты будут совпадать).
В этом примере вы получаете только пользовательские агенты с минимальной версией 120.0:
from fake_useragent import UserAgent
ua = UserAgent ( min_version = 120.0 )
ua . random
Для обратной совместимости минимальный процент использования по-прежнему можно указать с помощью аргумента min_percentage
. Однако текущий список пользовательских агентов не содержит этой статистики. Поэтому все пользовательские агенты будут совпадать.
Подсказка: конечно, вы можете комбинировать все эти аргументы по своему усмотрению!
Начиная с версии 1.3.0 мы также предлагаем вам следующие свойства «get», которые возвращают весь словарь Python UA, а не только строку пользовательского агента:
Предупреждение. Необработанные объекты JSON (в словарях Python) возвращаются «как есть». Это означает, что эта структура данных может измениться в будущем!
Имейте в виду, что приведенные ниже свойства «get» могут не возвращать те же пары ключ/значение в будущем. Используйте
ua.random
или аналогичный, как указано выше, если вы хотите использовать стабильный интерфейс.
from fake_useragent import UserAgent
ua = UserAgent ()
# Random user-agent dictionary (object)
ua . getRandom
# {'percent': 0.8, 'useragent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36 Edg/116.0.1938.76', 'system': 'Edge 116.0 Win10', 'browser': 'edge', 'version': 116.0, 'os': 'win10'}
# More get properties:
ua . getFirefox
# {'percent': 0.3, 'useragent': 'Mozilla/5.0 (Windows NT 10.0; rv:109.0) Gecko/20100101 Firefox/118.0', 'system': 'Firefox 118.0 Win10', 'browser': 'firefox', 'version': 118.0, 'os': 'win10'}
ua . getChrome
ua . getSafari
ua . getEdge
# And a method with an argument.
# This is exactly the same as using: ua.getFirefox
ua . getBrowser ( 'firefox' )
Вы можете переопределить резервную строку с помощью параметра fallback
, в очень редких случаях что-то не удавалось:
from fake_useragent import UserAgent
ua = UserAgent ( fallback = 'your favorite Browser' )
# in case if something went wrong, one more time it is REALLY!!! rare case
ua . random == 'your favorite Browser'
Если вы попытаетесь получить неизвестный браузер:
from fake_useragent import UserAgent
ua = UserAgent ()
print ( ua . unknown )
#Error occurred during getting browser: randm, but was suppressed with fallback.
#Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/122.0.0.0 Safari/537.36 Edg/122.0.0.0
Если вам нужно защитить некоторые атрибуты от переопределения их в UserAgent с помощью метода __getattr__
используйте safe_attrs
вы можете передать туда имена атрибутов. По крайней мере, это не позволит вам вызвать FakeUserAgentError, если атрибут не найден.
Например, при использовании поддельного пользовательского агента с injections <https://github.com/tailhook/injections>
вам необходимо:
from fake_useragent import UserAgent
ua = UserAgent ( safe_attrs = ( '__injections__' ,))
Пожалуйста, не используйте, если не понимаете, зачем вам это нужно. Это волшебство для редко крайнего случая.
Убедитесь, что вы используете последнюю версию!
pip install --upgrade fake-useragent
Или, если это не работает, попробуйте установить последнюю версию пакета следующим образом (пример 2.0.1
, проверьте, какая последняя версия установлена на PyPi):
pip install fake-useragent==2.0.1
Проверьте версию через консоль Python:
import fake_useragent
print ( fake_useragent . __version__ )
И вы всегда можете публиковать вопросы.
Пожалуйста, не забудьте указать версию, которую вы используете.
Данные пользовательского агента мы получаем с сайта user-agents.net. Данные хранятся в формате JSONlines. Файл находится в каталоге: src/fake_useragent/data
.
В настоящее время мы работаем над новым сценарием автоматизации (см. проблему № 333), который будет получать сценарии пользовательских агентов с сайта user-agents.net и время от времени обновлять их.
Файл данных JSON является частью пакета Python, см. pyproject.toml. Узнайте больше о поддержке файлов данных.
Мы рекомендуем использовать виртуальную среду Python перед установкой пакетов Pip, например:
python -m virtualenv env
source env/bin/activate
pip install -e .
pip install -r requirements.txt
tox
Чтобы исправить импорт с помощью ruff:
pip install -r requirements.txt
ruff check --select= " I " --fix .
Исправьте ошибки форматирования черного кода:
pip install -r requirements.txt
black .
Примечание. Когда выйдет ерш v1.0, мы, скорее всего, полностью перейдем к ruff
вместо black
.
2.0.1
2.0.0 4 декабря 2024 г.
"Google", "Chrome", "Firefox", "Edge", "Opera"," Safari", "Android", "Yandex Browser", "Samsung Internet", "Opera Mobile", "Mobile Safari", "Firefox Mobile", "Firefox iOS", "Chrome Mobile", "Chrome Mobile iOS", "Mobile Safari UI/WKWebView", "Edge Mobile", "DuckDuckGo Mobile", "MiuiBrowser", "Whale", "Twitter", "Facebook", "Amazon Silk"
"Windows", "Linux", "Ubuntu", "Chrome OS", "Mac OS X", "Android", "iOS"
"desktop", "mobile", "tablet"
1.5.1 16 марта 2024 г.
1.5.0 8 марта 2024 г.
1.4.0 24 ноября 2023 г.
1.3.0 2 октября 2023 г.
ua.getRandom
, ua.getFirefox
, ua.getChrome
, ua.getSafari
. И общий метод: ua.getBrowser(..)
(например, getBrowser('firefox')
)os
'windows' для проверки значений как win10
, так и win7
(ранее проверялась только win10
), таким образом возвращая больше UA.1.2.1 2 августа 2023 г.
min_percentage
1.2.0 2 августа 2023 г.
use_external_data=True
verify_ssl
удалены . Если вы используете эти параметры, просто удалите их из своего кода!1.1.3 20 марта 2023 г.
1.1.2 8 февраля 2023 г.
1.1.1 4 декабря 2022 г.
1.1.0 26 ноября 2022 г.
pkg_resource
в качестве резервного механизма при попытке получить локальный файл данных JSON.1.0.1 10 ноября 2022 г.
importlib-metadata
и importlib-resources
в качестве зависимостей.files()
работали.importlib_metadata
теперь также должен работать на версиях Python до 3.8.MANIFEST.in
1.0.0 17 ноября 2022 г.
myproject.toml
поддержкой package-data
0.1.14 5 ноября 2022 г.
pyproject.toml
+ проверка синтаксиса.tox.ini
0.1.13 21 октября 2022 г.
browsers
, позволяющий переопределить имена браузеров, которые вы хотите использовать.black
форматтера Python в пользу Flake0.1.12 31 марта 2022 г.
0.1.11 4 октября 2018 г.
s3 + cloudfront
перемещен на heroku.com
, потому что кто-то из Флориды сделал около 25 миллионов запросов в прошлом месяце0.1.10 11 февраля 2018 г.
cloudfront
документации0.1.9 11 февраля 2018 г.
w3schools.com
переименованный в IE/Edge
в Edge/IE
heroku.com
перемещен на s3 + cloudfront
0.1.8 2 ноября 2017 г.
useragentstring.com
Can't connect to local MySQL server through socket
0.1.7 2 апреля 2017 г.
0.1.6 2 апреля 2017 г.
use_cache_server
ни на что не влияетw3schools.com <https://www.w3schools.com/browsers/browsers_stats.asp>
_ перемещен на https
verify_ssl
, по умолчанию они равны True
(контекст urllib.urlopen
ssl для Python 2.7.9- и 3.4.3- не поддерживается)0.1.5 28 февраля 2017 г.
ua.edge
в Internet ExplorerEdge
use_cache_server
fake_useragent.settings.HTTP_TIMEOUT
до 5 секунд.0.1.4 14 декабря 2016 г.
fallback
браузера на случай недоступных источников данных.fake_useragent.FakeUserAgent
для fake_useragent.UserAgent
fake_useragent.UserAgentError
для fake_useragent.FakeUserAgentError
fake_useragent.settings.HTTP_TIMEOUT
до 3 секунд.safe_attrs
для предотвращения переопределения с помощью __getattr__
0.1.3 24 ноября 2016 г.
fake_useragent.errors.FakeUserAgentError
в случае, если нет возможности загрузить данные.fake_useragent.errors.FakeUserAgentError
вместо None
в случае неизвестного браузера.gevent.sleep
в исправленной среде gevent
при попытке загрузки данных.ХХХ хххххх хх, хххх
Вы можете посетить страницу авторов.