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モード端末もAndroidもほとんどカバー
- 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データは以下から取得しています。