実世界のデータベースを備えた最新のシンプルなユーザーエージェントフェイカー。
desktop
、 tablet
、 mobile
UA) を取得します。useragent
、 percent
、 type
、 device_brand
、 browser
、 browser_version
、 os
、 os_version
、 platform
などのフィールドを含む、ユーザー エージェントの Python 辞書 (別名オブジェクト) を取得します。pip install fake-useragent
または、複数の Python / pip バージョンがインストールされている場合は、 pip3
を使用します。
pip3 install fake-useragent
以下に簡単な使用例を示します。より高度な使用法については、この Readme の次の章も参照してください。
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 が v1.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-agent が認識しているブラウザ: Chrome、Edge、Firefox、Safari、Opera、Android、Opera Mobile、Mobile Safari、Firefox Mobile、Firefox iOS、Chrome Mobile、Chrome Mobile iOS など (上記の完全なリストを再度参照してください)。
注 #2: fakeuser-agent v2.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 v2.0.0 以降、OS 名は大文字と小文字が区別されます。
使用するプラットフォームのタイプを指定することもできます。これは、 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 以降、ユーザー エージェント文字列のみではなく、UA の Python 辞書全体を返す次の "get" プロパティも提供されるようになりました。
警告 生の 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>
で偽の useragentを使用する場合、次のことを行う必要があります。
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
ディレクトリにあります。
現在、user-agents.net からユーザー エージェント スクリプトを取得し、ユーザー エージェントを随時更新する新しい自動化スクリプト (問題 #333 を参照) に取り組んでいます。
データ JSON ファイルは Python パッケージの一部です。pyproject.toml を参照してください。データ ファイルのサポートについて詳しくは、こちらをご覧ください。
Pip パッケージをインストールする前に、次のように Python 仮想環境を使用することをお勧めします。
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 .
注: ruff v1.0 がリリースされると、おそらくblack
ではなくruff
に完全に移行します。
2.0.1
2.0.0 2024 年 12 月 4 日
"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 2024 年 3 月 16 日
1.5.0 2024 年 3 月 8 日
1.4.0 2023 年 11 月 24 日
1.3.0 2023 年 10 月 2 日
ua.getRandom
、 ua.getFirefox
、 ua.getChrome
、 ua.getSafari
の導入。そして汎用メソッド: ua.getBrowser(..)
(例: getBrowser('firefox')
)win10
とwin7
両方の値をチェックするようにos
引数 'windows' を修正し (以前はwin10
のみをチェックしていました)、より多くの UA を返します。1.2.1 2023 年 8 月 2 日
min_percentage
チェックの小さな改善1.2.0 2023 年 8 月 2 日
use_external_data=True
およびverify_ssl
は削除されます。これらのパラメーターを使用する場合は、コードから削除するだけです。1.1.3 2023 年 3 月 20 日
1.1.2 2023 年 2 月 8 日
1.1.1 2022 年 12 月 4 日
1.1.0 2022 年 11 月 26 日
pkg_resource
追加します1.0.1 2022 年 11 月 10 日
importlib-metadata
とimportlib-resources
依存関係として追加しますfiles()
が機能するようにするには、importlib リソースに関する特定の Python バージョン (Python v3.10 以降) を確認してください。importlib_metadata
3.8 より前の Python バージョンでも動作するようになりました。MANIFEST.in
ファイルを削除します1.0.0 2022 年 11 月 17 日
package-data
サポートを使用してmyproject.toml
ファイルを拡張する0.1.14 2022 年 11 月 5 日
pyproject.toml
ビルド システム形式 + 構文チェックに移行tox.ini
ファイルの改善0.1.13 2022 年 10 月 21 日
browsers
引数を実装すると、使用するブラウザ名をオーバーライドできるようになります。black
Python フォーマッタを使用する0.1.12 2022 年 3 月 31 日
0.1.11 2018 年 10 月 4 日
s3 + cloudfront
フォールバックをheroku.com
に移動しました0.1.10 2018 年 2 月 11 日
cloudfront
URL0.1.9 2018 年 2 月 11 日
w3schools.com
名前がIE/Edge
からEdge/IE
に変更された問題を修正heroku.com
フォールバックをs3 + cloudfront
に移動しました0.1.8 2017 年 11 月 2 日
useragentstring.com
修正してCan't connect to local MySQL server through socket
0.1.7 2017 年 4 月 2 日
0.1.6 2017 年 4 月 2 日
use_cache_server
バグを修正しましたが、何も影響しませんでしたw3schools.com <https://www.w3schools.com/browsers/browsers_stats.asp>
_ https
に移動しましたverify_ssl
オプションが追加されました。デフォルトではTrue
(Python 2.7.9 および 3.4.3 のurllib.urlopen
ssl コンテキストはサポートされていません)0.1.5 2017 年 2 月 28 日
ua.edge
エイリアスを追加しましたEdge
統計の表示を開始use_cache_server
オプションが追加されましたfake_useragent.settings.HTTP_TIMEOUT
を 5 秒に増加しました0.1.4 2016 年 12 月 14 日
fallback
ブラウザのサポートを追加しましたfake_useragent.FakeUserAgent
のエイリアスfake_useragent.UserAgent
を追加しましたfake_useragent.FakeUserAgentError
のエイリアスfake_useragent.UserAgentError
を追加しましたfake_useragent.settings.HTTP_TIMEOUT
を 3 秒に短縮しました__getattr__
によるオーバーライドを防ぐためのsafe_attrs
を追加しました0.1.3 2016 年 11 月 24 日
fake_useragent.errors.FakeUserAgentError
を発生させます。None
ではなく、 fake_useragent.errors.FakeUserAgentError
が発生します。gevent
パッチが適用された環境にgevent.sleep
サポートを追加しました。XXX xxxxxxx xx、xxxx
著者のページにアクセスできます。