2012/04/04

AKB48を分析する - 3.AKB48のメンバーリストをMongoDBに突っ込む

下記のPython スクリプトで、メンバーのIDをAKB48 on google+のサイトからゲットし、やすす等スタッフのIDを加えてMongoDBにinsertできる。
BeautiflSoupというモジュールを使ってサイトからgoogle+のメンバーIDを抽出している。このモジュールはこういた処理をするときの定番みたいです。
_idという項目が、リレーショナル・データベースでいうところのプライマリーキーの役割をはたすもので、これは指定しないとMongoDBが自動的に採番する。リランしたときにデータが重複しないように、google+のIDを_idにセットするようにしている。

次は、このレコードを読み、google+のアクティビティを取得するプログラムを作る予定です。

#! c:/Python26/python.exe
# coding: utf-8 

import pymongo #@UnresolvedImport
from pymongo import Connection #@UnresolvedImport
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:
            ggtsidlist.append(lisoup['data-gplusid'])
        except:
            continue
    ggtsidlist.append('113474433041552257864') #やすす
    ggtsidlist.append('108897254135232129896') #よすす
    ggtsidlist.append('112435502021367429566') #しのぶ
    ggtsidlist.append('113091703821013997975') #木島
    ggtsidlist.append('103803814106571203433') #北川 
    
    return ggtsidlist

if __name__=='__main__':
    con = Connection()
    ggts = con[u'ggts']
#    con.ggts.ggtsid.remove()
    record = {}
    ggtsidlist = ggtsidlist_make()
    for ggtsid in ggtsidlist:
        record = {u'ggtsid':ggtsid,u'_id':ggtsid}
        print record 
        con.ggts.ggtsid.insert(record)