web-dev-qa-db-ja.com

HTTPユーザーエージェント文字列の解析

確実に検出するためにPythonでUser-Agent文字列を解析する最良の方法は何ですか?

  1. ブラウザ
  2. ブラウザのバージョン
  3. OS

またはおそらくそれを行うヘルパーライブラリ

49
Shekhar

私自身の質問に答える;)

最後に、提案#1、つまり自分で提案することにしました。そして私は結果に満足しています。パッチなどを自由に使用/変更/送信してください。

ここにあります-> http://pypi.python.org/pypi/httpagentparser

67
Shekhar

ASparser for Python Hicro Keeによる。バージョンチェック付きのリモートサーバーからのデータファイルとキャッシュの自動更新。

10
Jar

Werkzeugには、ユーザーエージェント解析機能が組み込まれています。

新しいリンク(2018年6月) http://werkzeug.pocoo.org/docs/0.14/utils/#module-werkzeug.useragents

8
Joshua Olson

これらの提案を Firefoxユーザーエージェントの完全なコーパス に対して実行したところ、比較のためのバージョン番号の解析が非常に悪いことがわかりました。

それが必要な場合は、以前は browserscope プロジェクトの一部であった Aparser を確認することをお勧めします。 ドキュメントはこちら

6
James Broadhead

この質問に対する他の回答は現在かなり古いものです。 Browser User Agent解析の新しい標準はBrowserscopeの user agent parser だと思います。

また、 多くの他の言語 で、まったく同じ一致パターンで便利に利用できます。いつかJavaScriptで一部のUA文字列も解析したいと思うかもしれませんし、一貫性のない解析について心配する必要はありません。

6
Chris W.

Th ブラウザキャップパーサー が機能するはずです。少し遅いかもしれません。

3
Chirayu Patel

ただし、これらすべてをPython=側で解析する場合は、 http://browsers.garykeith.com/downloads.asp にあるXML/INIファイルを使用できます。 =ユーザーエージェントで検索を行うこれは、phpのget_browser()関数で使用されるファイルと同じです。

2
NerdyNick