Symfoware

Symfowareについての考察blog

Python HTTPリクエストのUser-Agentヘッダから端末を分析する

webサーバーのログに残されてるUser-Agentヘッダ。
これを解析し、PCやスマホのアクセス比率を分析したいことがあったのでメモ。


user-agents



以前、「apache-log-parser」を使用して、アクセスログを分析したことがあります。
PythonでApacheログの解析(apache-log-parser)

今回は、例えば


Mozilla/5.0 (Linux; Android 4.4.2; SO-03F Build/17.1.1.B.3.240) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/42.0.2311.111 Mobile Safari/537.36



こういう文字列を分析できれば良いです。
apache-log-parserで「request_header_user_agent__is_mobile」の
判定はどうやっているんだろ?と思い、ソースを見てみると、
このライブラリを使用していました。

https://pypi.python.org/pypi/user-agents

easy_installでインストール。


$ sudo easy_install user_agents




使い方はこんな感じ。


  1. # -*- coding:utf-8 -*-
  2. import user_agents
  3. user_agent_string = 'Mozilla/5.0 (Linux; Android 4.4.2; SO-03F Build/17.1.1.B.3.240) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/42.0.2311.111 Mobile Safari/537.36'
  4. result = user_agents.parse(user_agent_string)
  5. print result.is_mobile
  6. user_agent_string = 'Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/43.0.2357.130 Safari/537.36'
  7. result = user_agents.parse(user_agent_string)
  8. print result.is_mobile





$ python sample.py
True
False



ちゃんとスマホ、PCからのアクセスと判定されていますね。

関連記事

テーマ:プログラミング - ジャンル:コンピュータ

  1. 2015/07/05(日) 13:35:43|
  2. Python
  3. | トラックバック:0
  4. | コメント:0
  5. | 編集
<<FreeBSD 10.1にOpenJDK 8をインストールする | ホーム | FreeBSD 10.1にpgbouncerをインストールする>>

コメント

コメントの投稿


管理者にだけ表示を許可する

トラックバック

トラックバック URL
http://symfoware.blog68.fc2.com/tb.php/1739-d20f5aa6
この記事にトラックバックする(FC2ブログユーザー)