2012/03/27

AKB48を分析する - 1.メンバーのIDをゲットする

私は最近、AKB48の俄ファンになっている。いわゆる推しメンはチームBの鈴木紫帆里。
AKB48の各メンバーが利用している、ぐぐたす(google+)がとってもおもしろいので、分析しようと思う。ソーシャルデータの活用といいうやつだ。

分析のためのツールとしては、プログラミング言語のPythonと、データベースのMongoDB、MySQLを使用する方針とする。
尚、OSはUbuntu11.10とWindows XPをいったりきたりしながら試行錯誤している。
各ツールの導入は、googleで検索すると(Python インストール 等のキーワードで)いろいろと出てくるので参考にしてください。
UbuntuだとPyothonは最初から入っています。また、MySQLはUbuntuソフトウエアセンターからインストールできます。
ちょっと迷ったのがUbuntuでのMongoDBである。いくつか方法があるようですが、私は、
こちらを参考にしました。

分析しようとすると、各メンバーのIDの一覧が必要になる。最初は地道に右クリックでリンクをコピーしてたのですけれど、色々試行錯誤した結果、AKB48 Now on Google+のサイトから一覧をゲットすることに成功した。プログラムは下記の通りです。
ただし、これだと、やすすとかよすすとかしのぶのIDは取ってこれないので、別途追加する必要があります。
BeautifulSoupという、サードパーティーのライブラリを使用しています。
これは、HTMLのソースから必要なデータを抽出する際に非常に便利なライブラリです。こういう処理をスクレイピングというらしい。その筋ではメジャーなツールのようだ。
#! c:/Python26/python.exe
# coding: utf-8 

from BeautifulSoup import BeautifulSoup #@UnresolvedImport
import urllib
def ggtsidlist_make():
    soup = BeautifulSoup(urllib.urlopen("http://www.google.com/intl/ja/+/project48/").read())
    lisoup=[]
    ggtsidlist = []
    for lisoup in soup.findAll("li"):
    
        try:
#            print "'" + lisoup['data-gplusid'] +"'"
#            ggtsid_get = lisoup['data-gplusid']
            ggtsidlist.append(lisoup['data-gplusid'])
        except:
            continue
    return ggtsidlist

if __name__=='__main__':

    ggtsidlist = ggtsidlist_make()
    for ggtsid in ggtsidlist:
        print ggtsid