[解決済み] Flaskでユーザーエージェントを取得するには?
2022-08-31 16:18:47
質問
Flaskでユーザーエージェントにアクセスしようとしているのですが、それに関するドキュメントが見つからないか、教えてくれないのです。
どのように解決するのですか?
from flask import request
request.headers.get('User-Agent')
また
request.user_agent
オブジェクトを使用することもできます。このオブジェクトには、useragent 文字列に基づいて作成された次の属性が含まれます。
- プラットフォーム (windows、linux、macos など)
- ブラウザ (クローム、ファイアフォックス、ミッシーなど)
- バージョン
- 言語
-
文字列 (
== request.headers.get('User-Agent')
)
注意:werkzeug 2.0 では、パースされたデータである
request.user_agent
のパースデータは非推奨です。もし詳細を取得し続けたいなら、カスタム
UserAgent
を実装し、それを
user_agent_class
として、カスタム
Request
サブクラスとして設定されます。
request_class
に設定されています。
Flask
のインスタンス(またはサブクラス)に追加します。
を使った実装の例です。
ua-parser
:
from ua_parser import user_agent_parser
from werkzeug.user_agent import UserAgent
from werkzeug.utils import cached_property
class ParsedUserAgent(UserAgent):
@cached_property
def _details(self):
return user_agent_parser.Parse(self.string)
@property
def platform(self):
return self._details['os']['family']
@property
def browser(self):
return self._details['user_agent']['family']
@property
def version(self):
return '.'.join(
part
for key in ('major', 'minor', 'patch')
if (part := self._details['user_agent'][key]) is not None
)
関連
-
[解決済み] Pythonで現在時刻を取得する方法
-
[解決済み] PandasでDataFrameの行を反復処理する方法
-
[解決済み] バイトを文字列に変換する
-
[解決済み] 列の値に基づいてDataFrameから行を選択するにはどうすればよいですか?
-
[解決済み] リストの最後の要素を取得する方法
-
[解決済み] Pandas DataFrameの行数を取得する方法は?
-
[解決済み] Flaskのリクエストで受信したデータを取得する
-
[解決済み] Flaskで静的ファイルを提供する方法
-
[解決済み] Flaskの開発サーバーをネットワーク上で見えるように設定する
-
[解決済み] Flaskのルートでクエリ文字列にアクセスする方法は?
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
[解決済み】flaskでhttpヘッダーを取得する方法は?
-
[解決済み] Flaskで1時間ごとに関数を実行するようにスケジュールするには?
-
[解決済み] データフレームをソートした後にインデックスを更新する
-
[解決済み] 古いバージョンのPythonにおける辞書のキーの並び順
-
[解決済み] Pythonで0xを使わずにhex()を使うには?
-
[解決済み] PyMongoで.sortを使用する
-
[解決済み] Pandasを使って、既存のExcelファイルに新しいシートを保存する方法は?
-
[解決済み] Python Empty Generator 関数
-
[解決済み] Pythonで、ウェブサイトが404か200かを確認するためにurllibをどのように使用しますか?
-
[解決済み] virtualenvsはどこに作成するのですか?