Aktueller, einfacher Useragent-Faker mit realer Datenbank.
desktop
, tablet
und/oder mobile
UAs)useragent
, percent
, type
, device_brand
, browser
, browser_version
, os
, os_version
und platform
abpip install fake-useragent
Oder wenn Sie mehrere Python-/pip-Versionen installiert haben, verwenden Sie pip3
:
pip3 install fake-useragent
Einfache Anwendungsbeispiele unten, siehe auch die nächsten Kapitel in dieser Readme-Datei für fortgeschrittenere Verwendungen:
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
Zusätzliche Funktionen, die fake-useragent nun seit v1.2.0 bietet.
Wenn Sie Ihre eigene Browserliste angeben möchten, können Sie dies über das Argument browsers
tun (Standard ist: ["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"]
.
In diesem Beispiel werden nur zufällige Benutzeragenten von Edge und Chrome zurückgegeben:
from fake_useragent import UserAgent
ua = UserAgent ( browsers = [ 'Edge' , 'Chrome' ])
ua . random
Hinweis: Fakeuser-agent bekannt über Browser: Chrome, Edge, Firefox, Safari, Opera, Android, Opera Mobile, Mobile Safari, Firefox Mobile, Firefox iOS, Chrome Mobile, Chrome Mobile iOS und mehr (siehe noch einmal die vollständige Liste oben).
Hinweis Nr. 2: Seit fakeuser-agent v2.0.0 wird bei den Browsernamen die Groß-/Kleinschreibung beachtet!
Wenn Sie Ihre eigenen Betriebssysteme angeben möchten, können Sie dies über das os
-Argument tun (Standard ist: ["Windows", "Linux", "Ubuntu", "Chrome OS", "Mac OS X", "Android", "iOS"]
).
In diesem Beispiel erhalten Sie nur Linux-Benutzeragenten zurück:
from fake_useragent import UserAgent
ua = UserAgent ( os = 'Linux' )
ua . random
Hinweis: Seit fakeuser-agent v2.0.0 wird bei den Betriebssystemnamen zwischen Groß- und Kleinschreibung unterschieden!
Sie können auch die Art der Plattformen angeben, die Sie verwenden möchten. Dies können Sie über das platforms
tun (Standard ist ["desktop", "mobile", "tablet"]
. In diesem Beispiel werden nur zufällige Benutzeragenten von einem Mobiltelefon zurückgegeben Gerät:
from fake_useragent import UserAgent
ua = UserAgent ( platforms = 'desktop' )
ua . random
Wenn Sie aktuellere Benutzeragentenzeichenfolgen zurückgeben möchten, können Sie mit dem Argument min_version
experimentieren (Standard ist: 0.0
, was bedeutet, dass alle Benutzeragenten übereinstimmen).
In diesem Beispiel erhalten Sie nur Benutzeragenten, die mindestens die Version 120.0 haben:
from fake_useragent import UserAgent
ua = UserAgent ( min_version = 120.0 )
ua . random
Aus Gründen der Abwärtskompatibilität kann mit dem Argument min_percentage
weiterhin ein minimaler Nutzungsprozentsatz angegeben werden. Die aktuelle Liste der Benutzeragenten enthält diese Statistik jedoch nicht. Daher stimmen alle Benutzeragenten überein.
Hinweis: Natürlich können Sie alle diese Argumente nach Belieben kombinieren !
Seit Version 1.3.0 bieten wir Ihnen nun auch die folgenden „get“-Eigenschaften an, die das gesamte Python-Wörterbuch des UA zurückgeben, anstatt nur den User-Agent-String:
Warnung: Rohe JSON-Objekte (in Python-Wörterbüchern) werden „wie sie sind“ zurückgegeben. Das heißt, diese Datenstruktur könnte sich in Zukunft ändern!
Beachten Sie, dass die folgenden „Get“-Eigenschaften in Zukunft möglicherweise nicht mehr dieselben Schlüssel/Wert-Paare zurückgeben. Verwenden Sie
ua.random
oder ähnliches wie oben erwähnt, wenn Sie eine stabile Schnittstelle verwenden möchten.
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' )
Sie können die Fallback-Zeichenfolge mithilfe des fallback
-Parameters überschreiben. In sehr seltenen Fällen ist ein Fehler aufgetreten:
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'
Wenn Sie versuchen, einen unbekannten Browser zu erhalten:
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
Wenn Sie einige Attribute davor schützen müssen, sie im UserAgent durch die Methode __getattr__
zu überschreiben, verwenden Sie safe_attrs
. Sie können dort Attributnamen übergeben. Dies verhindert zumindest, dass Sie FakeUserAgentError auslösen, wenn das Attribut nicht gefunden wird.
Wenn Sie beispielsweise einen gefälschten Useragenten mit injections <https://github.com/tailhook/injections>
verwenden, müssen Sie Folgendes tun:
from fake_useragent import UserAgent
ua = UserAgent ( safe_attrs = ( '__injections__' ,))
Bitte verwenden Sie es nicht, wenn Sie nicht verstehen, warum Sie dies benötigen. Das ist Magie für selten extreme Fälle.
Stellen Sie sicher, dass Sie die neueste Version verwenden!
pip install --upgrade fake-useragent
Oder wenn das nicht funktioniert, versuchen Sie, die neueste Paketversion wie folgt zu installieren ( 2.0.1
ist ein Beispiel, überprüfen Sie, was die neueste Version auf PyPi ist):
pip install fake-useragent==2.0.1
Überprüfen Sie die Version über die Python-Konsole:
import fake_useragent
print ( fake_useragent . __version__ )
Und Sie sind jederzeit willkommen, Probleme zu posten.
Bitte vergessen Sie nicht, die von Ihnen verwendete Version anzugeben.
Die User-Agent-Daten, die wir von user-agents.net abrufen. Die Daten werden im JSONlines-Format gespeichert. Die Datei befindet sich im Verzeichnis src/fake_useragent/data
.
Wir arbeiten derzeit an einem neuen Automatisierungsskript (siehe Problem Nr. 333), um Benutzeragentenskripte von user-agents.net abzurufen und die Benutzeragenten von Zeit zu Zeit zu aktualisieren.
Die Daten-JSON-Datei ist Teil des Python-Pakets, siehe pyproject.toml. Erfahren Sie mehr über die Unterstützung von Datendateien.
Wir empfehlen, vor der Installation von Pip-Paketen die virtuelle Python-Umgebung zu verwenden, etwa so:
python -m virtualenv env
source env/bin/activate
pip install -e .
pip install -r requirements.txt
tox
So beheben Sie Importe mit Ruff:
pip install -r requirements.txt
ruff check --select= " I " --fix .
Behebung von Black-Code-Formatierungsfehlern:
pip install -r requirements.txt
black .
Hinweis: Wenn Ruff v1.0 veröffentlicht wird, werden wir uns höchstwahrscheinlich voll und ganz auf ruff
statt auf black
konzentrieren.
2.0.1
2.0.0 4. Dezember 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. März 2024
1.5.0 8. März 2024
1.4.0 24. November 2023
1.3.0 2. Oktober 2023
ua.getRandom
, ua.getFirefox
, ua.getChrome
und ua.getSafari
vor. Und eine generische Methode: ua.getBrowser(..)
(z. B. getBrowser('firefox')
)os
„windows“, um sowohl nach win10
als auch win7
Werten zu suchen (zuvor wurde nur nach win10
gesucht), wodurch mehr UAs zurückgegeben werden1.2.1 2. August 2023
min_percentage
-Prüfung1.2.0 2. August 2023
use_external_data=True
und verify_ssl
werden entfernt . Wenn Sie diese Parameter verwenden, entfernen Sie sie einfach aus Ihrem Code!1.1.3 20. März 2023
1.1.2 8. Februar 2023
1.1.1 4. Dezember 2022
1.1.0 26. November 2022
pkg_resource
als Fallback-Mechanismus hinzu, wenn Sie versuchen, die lokale JSON-Datendatei abzurufen1.0.1 10. November 2022
importlib-metadata
und importlib-resources
als Abhängigkeiten hinzufügenfiles()
funktioniertimportlib_metadata
sollte jetzt auch auf Python-Versionen vor 3.8 funktionierenMANIFEST.in
1.0.0 17. November 2022
myproject.toml
um package-data
0.1.14 5. November 2022
pyproject.toml
migriert + Syntaxprüfungtox.ini
Datei0.1.13 21. Oktober 2022
browsers
Argument, sodass Sie die Browsernamen überschreiben können, die Sie verwenden möchtenblack
Python-Formatierers zugunsten von Flake0.1.12 31. März 2022
0.1.11 4. Oktober 2018
s3 + cloudfront
Fallback wurde auf heroku.com
verschoben, da jemand aus Florida letzten Monat etwa 25 Millionen Anfragen gestellt hat0.1.10 11. Februar 2018
cloudfront
-URL der Dokumente0.1.9 11. Februar 2018
w3schools.com
Umbenennung von IE/Edge
in Edge/IE
heroku.com
Fallback auf s3 + cloudfront
verschoben0.1.8 2. November 2017
useragentstring.com
Can't connect to local MySQL server through socket
0.1.7 2. April 2017
0.1.6 2. April 2017
use_cache_server
und hat keinerlei Auswirkungenw3schools.com <https://www.w3schools.com/browsers/browsers_stats.asp>
_ nach https
verschobenverify_ssl
-Optionen hinzugefügt, standardmäßig ist es True
( urllib.urlopen
SSL-Kontext für Python 2.7.9- und 3.4.3- wird nicht unterstützt)0.1.5 28. Februar 2017
ua.edge
Alias zum Internet Explorer hinzugefügtEdge
-Statistikuse_cache_server
hinzugefügtfake_useragent.settings.HTTP_TIMEOUT
auf 5 Sekunden erhöht0.1.4 14. Dezember 2016
fallback
-Browser für den Fall nicht verfügbarer Datenquellen hinzugefügtfake_useragent.FakeUserAgent
für fake_useragent.UserAgent
hinzugefügtfake_useragent.UserAgentError
für fake_useragent.FakeUserAgentError
hinzugefügtfake_useragent.settings.HTTP_TIMEOUT
auf 3 Sekunden reduziertsafe_attrs
hinzugefügt, um das Überschreiben durch __getattr__
zu verhindern.0.1.3 24. November 2016
fake_useragent.errors.FakeUserAgentError
aus, wenn es keine Möglichkeit gibt, Daten herunterzuladenfake_useragent.errors.FakeUserAgentError
anstelle von None
aus, wenn der Browser unbekannt istgevent.sleep
-Unterstützung in der gevent
gepatchten Umgebung hinzugefügt, wenn versucht wird, Daten herunterzuladenXXX xxxxxxx xx, xxxx
Sie können die Autorenseite besuchen.