Wikipediaのアクセス数を取得する

ふとWikipediaのアクセス数って取れるのだろうかと気になって調べてみた。
- Wikipediaの各ページごとに日々のページビューをグラフ化できるサービス
- Wikipediaの項目をページビューでソートする

要するにWikipediaのページビューは「Page view statistics for Wikimedia projects」で公開されているので頑張って集計すると良いよねという話らしい。見えてる限りだと2007年から今年までのログが大量に置いてある。

問題なのは、ログファイルは言語毎ではなくWikipedia関係のプロジェクト、言語混ざった状態でおいてあるので一つ一つのログがデカい+よりわけないと行けないということ。

  1. とりあえず日付で掘っていくとこんな感じのページにたどり着く
  2. ページのアクセス数は、pagecountsの方をダウンロードする
  3. 中身を展開して後はよろしく

ちなみにprojectの方は、Wikipedia関連のプロジェクトごとのアクセス数らしい。これが必要なのはプロだ。

ファイルの詳細について

データの形式についてはAnalytics/Data/Pagecounts-rawにまとまっている。

ログのファイル名の規則はこんな感じ年月別にディレクトリが切られてて、時間毎にファイルができてる

${YEAR}/${YEAR}-${MONTH}/pagecounts-${YEAR}${MONTH}${DAY}-${HOUR}0000.gz

例)http://dumps.wikimedia.org/other/pagecounts-raw/2015/2015-03/pagecounts-20150301-000000.gz

ログファイルの中身は4つのフィールドでできている

[domain] [page_title] [count_views] [total_response_size]

ドメインは対象となるWikiediaの言語名+サフィックスっぽい。日本語のWikipediaだと「ja.wikipedia.org」なので「ja」になる。Wikiブックスなら「ja.wikibooks.org」なので「ja.b」になるらしい。

例)en Main_Page 42 50043
例)de.d Freiheit 176 314159

page_titleは日本語だとURLエンコードされていたり日本語のままだったり、なんか2重にエンコードされていたりと割りにカオスなので注意。%25とかそのまま出てたら2重にエンコードされていそう。

なので、単純に考えれば以下でアクセス数は集計できる
1. ログを必要な分落としてきて
2. 日本語だけより分けて
3. ページタイトルを本に戻して
4. 足し算する

ログ自体も時間で分けれれているので時間毎の推移やらも取得可能
というところだけど、何に使うかねぇ