データサイエンス

XD.LOGSTORAGEに保存されたアクセスログをPythonで取得

こんにちは!
分析官のMです。

最近、業務でHIRAMEKI XDというマーケティングプラットフォームに触れる機会がありました。
HIRAMEKI XDにはwebサイトのアクセスログをユーザーに紐付けて収集・整理することができるXD.LOGSTORAGEという機能があります。
保存されたアクセスログはGUIで取得できるのですが、API(ログストレージAPI)を利用して取得することもできます。

本記事ではXD.LOGSTORAGEに保存されたアクセスログをログストレージAPIを利用してPythonで取得する方法を共有します。

ログストレージAPIの仕様

大まかな仕様は以下の通りです。

サーバリクエストパターン

https://www.xdata.jp/report/v2/api/storage/download/[site_id]/[targtet_date]/[profile_id]

[site_id]には契約時に発行されたサイトID(6桁)、
[targtet_date]にはダウンロードしたいアクセスログの日時(YYYYMMDDHH)、
[profile_id]にはダウンロードしたいログのプロファイルID(アクセスログの場合は”0000000001″)を入力します。

ユーザ認証

APIログイン認証はBasic認証です。
HIRAMEKI XDにログインする際のメールアドレス、パスワードを利用します。

実装

今回は2020年9月1日 0時台のアクセスログをzip形式で取得してみました。
下図がそのコードになります。

f:id:gri-blog:20200920172559p:plain

2行目:HTTPライブラリのrequestsをインポート
5~8行目:URLを指定
11,12行目:メールアドレスとパスワードを指定
15行目:アクセスログ取得
18,19行目:ログ格納先を指定
22,23行目:ローカル環境に保存(デコードされていない状態のアクセスログをres.contentで取得)

さいごに

XD.LOGSTORAGEに保存されたアクセスログは基本的には1時間単位でしか取得できないので、
例えば1か月分のログをダウンロードする場合、GUIだと約720(=24h×30日)回、ダウンロードボタンをクリックする必要があります。
それに対し、ログストレージAPIとfor文を駆使すれば、1回のPython実行で任意の期間のログをダウンロードすることができるので、近々実装してみたいと思います。
※APIリクエストは1分間に30回までという制約があるので、そこは注意が必要ですね…

mochizuki
データサイエンティスト。筋トレ、温泉、時々スキー。