UserAgentから携帯電話の機種名を抽出

  • 4
    いいね
  • 0
    コメント
この記事は最終更新日から1年以上が経過しています。

UserAgentから携帯のモデル名 (機種名) を抽出するPythonモジュール kpy が2014冬-2015冬モデルの携帯に対応しました。

このモジュールは全く宣伝しないでリリースしちゃったやつなので知らない人しかいないと思うのでこの機会に紹介しようかなと思います。

どういうときに使う?

  • アクセスログから統計を取りたいとき
    • アクセスが多い端末を検証機として購入したり
  • Webとかアプリでバグが起きる環境を特定/再現したいとき
  • browser fingerprint情報の一つとして使う

などなど...

Install

$ pip install kpy

で入れられます。

使い方


>>> import kpy
>>> ua = 'Mozilla/5.0 (Linux; U; Android 4.1.1; ja-jp; HTL21 Build/JRO03C AppleWebKit/534.30 (KHTML, like Gecko) Version/4.0 Mobile Safari/534.30'
>>> kpy.extract(ua)
'HTL21'

import kpy して、kpy.extract() にUAを食わせるだけ!

対応してるモデル

  • docomo
    • iモード端末もAndoroidもほとんどカバー
  • au
    • ガラケーは全く対応してない
    • Androidモデルはだいたいカバー
  • SoftBank
    • Vodafone時代からだいたいカバー
    • Disney mobile, emobile, willcom, Y!mobileも対応

って感じでガラケー、スマホ、タブレット、PHSに対応してます。
特にdocomoには自信があって、1999年発売のF501iからつい先日の2015年11月20日発売のXperia Z5 Premium SO-03Hまでカバーしてます。

Apple製品は対応する予定ないので、気になる場合は woothee-python と組み合わせて使ってください。

auのガラケーに対応してない理由

モデル名とUA内の表記が一致してないので変換テーブルを作る必要があるため。

たとえば、A5404SというモデルのUAは、KDDI-SN25 UP.Browser/6.2.0.5 (GUI) MMP/2.0 ってなっててどこにもA5404Sなんて文字が出てこないのです。

(よっぽど元気がないと多分対応しなそう。。。)

どんな仕組み?

正規表現を複数回してモデル名っぽい部分をマッチさせてるだけのお手軽仕様。

ソースは↓で見れます。
https://github.com/ikegami-yukino/kpy

テスト用UAデータは以下から取得しています。