インターネット上でどのようなキーワードが検索されているのか、を効率的に調べる方法はないか日々考えあぐねています。
「そもそもキーワードってなんだろう?」と改めて考えたんですが、それはやはり「固有名詞」なんじゃないかと思いました。
非常に当たり前なんですけどね。
で、じゃあ固有名詞が1番集まっているサイトは何だろうと考えると、結局のところwikipediaなのではないかと。
つまりwikipediaでそれぞれのページのPVを調べることができれば、どのようなワードが人気なのかわかろうというもの。
とはいえ、そんな都合の良い情報が提供されているはずはないよな、と思いつつもちょっと調べてみると、正に欲しいデータが提供されているんですよね。さすがwikipediaといったところ。
ここには2007年12月9日以降のすべての項目のPVのデータがあります。
1時間ごとに集計されていて、中身を見てみると英語や日本語など言語に限らず、すべての言語のページのPVが記載されているようです。
しかしながら、ファイルひとつあたりのサイズは大体100M前後で、解凍すると400Mもの大きさとなります。
さすがに情報としては巨大です。
この中から日本語だけの項目を抜き出し、さらにPV順に並べるとなると、Excelやエディタを駆使してなんとかするという方法ではさすがに厳しいですね。
ということで、日曜プログラマーである私が少ない知恵をなんとか絞って、python2でコードを書いてみました。
キーワードとPVを抜き出し、それをPVが多い順に並べるという内容。
私は趣味プログラマーとしてもレベルが低いので、なんとか動けばいいというレベルですが参考にコードを置いておきます。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 |
# -*- coding: utf-8 -*- import sys reload(sys) sys.setdefaultencoding('utf-8') import urllib from operator import itemgetter #出力用空リスト作成 wordpvs = [] #ファイルの読み込み #引数で指定したファイルを読み込む argvs = sys.argv f = open(argvs[1]) #1行ごとよみこむ #日本語だったら処理=行頭がjaで始まるもの #日本語だったらURLデコード(エンコードは2回かかってるらしい) #PVはintにする(ソートするため) #PVが3以上のものだけリストする(ファイルサイズ節約) line = f.readline() while line: if line.startswith('ja'): line = line.split(" ") name = urllib.unquote(urllib.unquote(line[1])) pv = int(line[2]) if pv > 2: wordpvs.append([name,pv]) line = f.readline() else: line = f.readline() f.close #PVでソートする wordpvs.sort(key=itemgetter(1), reverse=True) #出力する export_file = "export_" + argvs[1] fe = open(export_file,"w") for export_line in wordpvs: fe.writelines(export_line[0]) fe.writelines(",") fe.writelines(str(export_line[1])) fe.writelines("\r") fe.close |
このコードに引数としてwikipediaからダウンロードしてきたファイルを渡してあげれば、「export_xxxxx」という名前でファイルが作成されます。
試しに2016年5月20日9時のデータで実行すると下記のような結果が。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 |
ja,838299 メインページ,13130 舛添要一,3505 水谷優子,1929 ジャネット・ジャクソン,1494 稀勢の里寛,1192 近江友里恵,1007 index.html,816 懸賞_(相撲),697 ,694 釘宮理恵,689 熊本地震_(2016年),681 Folder_(音楽グループ),650 相楽樹,620 5月20日,601 三浦大知,596 桑子真帆,582 片山さつき,574 佐藤あり紗,566 ソロモンの偽証,563 高倉麻子,513 満島ひかり,501 測定,498 百条委員会,495 特別:ウォッチリスト,493 谷花音,493 Special:Search,459 吉岡里帆,439 特別:フィード項目/featured/20160519000000/ja,434 特別:フィード項目/featured/20160520000000/ja,433 (以下、略) |
項目とPVが記載されています。
途中、上手く取れていない項目やノイズになっている項目がありますが、自分で参考にする情報としては十分でしょう。
また、今回はPVが2以下のものは切り捨てたんですが、それでも96000もの項目があります。
上位30項目を記載してみたのですが、割と知らない項目もあったり、ニュースで話題になっている人はちゃんと上位に上がってきていることがわかったり、想像していた以上に有用な情報が取れていそうです。
「5月20日」というページがランクインしているのも面白いですね。
貴重な週末の半日を消費してしまいましたが、チャレンジして良かったと思ってます。
コメントを残す