かずきち。の日記

サーバサイドエンジニアのつぶやき

Wikipediaデータベースのインポート

しばらく前というか、最近というか…
遅ればせながらクローリングという技術を身につけた。
これでGoogleのように世界中のWEBページを自動で巡回して解析ができる。
ただ調子に乗って大量にクエリを投げまくるとアクセス拒否されてしまうことがわかったw
トランザクション間に変数を設けてアクセスしないといけないようだ。
経験則的には1秒間に1クエリが許容範囲のようだ。


import MySQLdb
import MeCab
import urllib
import urllib2
import re
import httplib
import os
import sys
import smtplib
from email.MIMEText import MIMEText
from email.Utils import formatdate
from BeautifulSoup import BeautifulSoup

for i in range(49000,2000000):

    print i

##処理数が1000の倍数なら携帯に送信
    if i%1000 == 0:
        try:
            content = str(i)+"th was correctly processed."
            msg = MIMEText(content)
            msg['Subject'] = 'Python - check'
            msg['From'] = '***@gmail.com'
            msg['To'] = '***@docomo.ne.jp'
            msg['Date'] = formatdate()

            s = smtplib.SMTP('smtp.gmail.com', 587)
            s.ehlo()
            s.starttls()
            s.ehlo()
            s.login('***@gmail.com', '***')
            s.sendmail('***@gmail.com', ['***@docomo.ne.jp'], msg.as_string())
            s.close()

            print "send"

        except:
            print "error"

    connect = MySQLdb.connect(db="corpus", host="localhost", port=3306, user="root", passwd="")

    cur = connect.cursor()

    sql = "select * from text limit "+str(i)+",1"

    cur.execute(sql)

    rows = cur.fetchall()

    for row in rows:
        page_id = str(row[0])
        
        text = str(row[1])

        sql = "select page_title from page where page_latest = "+page_id

        cur.execute(sql)

        rows = cur.fetchall()

        for row in rows:
            title = str(row[0])

            ##タイトルの取得
            print "***"+title+"***"
            #print text

            ##[[で切って配列化する
            if re.search(r'\[\[',text) != None:
                p1 = re.compile(r'\[\[')
                p2 = p1.split(text)
                for i in range(len(p2)):
                    #print p2[i]
                    ##]]で切って手前のみ取得する
                    if re.search(r'\]\]',p2[i]) != None:
                        p3 = re.compile(r'\]\]')
                        p4 = p3.split(unicode(p2[i],'utf-8'))
                        p5 = p4[0].encode('utf-8','replace')
                        #print p5
##":"がある場合に手間を消去
                        if re.search(r':',p5) != None:
                            p6 = re.compile(r':')
                            p7 = p6.split(p4[0])
                            p8 = p7[1].encode('utf-8','replace')
                        else:
                            p8 =  p5
                        #print p8
##"|"がある場合に手間を消去
                        if re.search(r'\|',p8) != None:
                            p9 = re.compile(r'\|')
                            p10 = p9.split(p8)
                            p11 = unicode(p10[0],'utf-8').encode('utf-8','replace')
                        else:
                            p11 =  p8
                        print p11

                        check = "select * from dictionary where word1 = '"+title+"' and word2 = '"+p11+"'"

                        try:
                            #print cur.execute(check)
                            if cur.execute(check) == 0:
                                write = "INSERT INTO dictionary VALUES('"+title+"','"+p11+"')"
                                print write
                                cur.execute(write)

                        except:
                            print "error"

        print "**************************************:"

        cur.close()


時間つぶしにWikipediaのデータベースをインポートしてみてみた。
関連語を取り出すようにちょろっといじってみた。
これをノードにしてグラフでも作成してみるか♪
試しに深田恭子でやってみる。


これからは並列処理の勉強とExcelVBAの勉強をしよう。
普通に時間が足りなくてやばい。


深田恭子
関連:東京都
関連:北区 (東京都)
関連:ABO式血液型
関連:ファイティングガール
関連:神様、もう少しだけ
関連:to Heart 〜恋して死にたい〜
関連:富豪刑事
関連:死者の学園祭
関連:下妻物語
関連:ヤッターマン (映画)
関連:毎日映画コンクール
関連:11月2日
関連:日本
関連:俳優
関連:歌手
関連:タレント
関連:堀越高等学校
関連:ホリプロ
関連:ホリプロタレントスカウトキャラバン
関連:テレビドラマ
関連:ドラマ
関連:映画
関連:FiVE
関連:連続ドラマ
関連:アイドル
関連:音楽ユニット
関連:HIP
関連:金城武
関連:パンチラ
関連:パンモロ
関連:ニッポン放送
関連:鬼の棲家
関連:赤川次郎
関連:主題歌
関連:世界水泳選手権
関連:フレンズ (日韓合作ドラマ)
関連:大韓民国
関連:ウォンビン
関連:北野武
関連:Dolls (映画)
関連:デザイナー
関連:パリ・コレクション
関連:モデル (職業)
関連:ロリータ・ファッション
関連:秋吉久美子
関連:小泉今日子
関連:筒井康隆
関連:富豪刑事デラックス
関連:シリーズ (作品)
関連:市川崑
関連:犬神家の一族 (2006年の映画)
関連:松岡圭祐
関連:蒼い瞳とニュアージュ
関連:未来講師めぐる
関連:2009年
関連:悪役
関連:2001年
関連:金髪
関連:学校じゃ教えられない!
関連:ヤッターマン (2008年のテレビアニメ)
関連:大河ドラマ
関連:天地人
関連:淀殿
関連:HEY!HEY!HEY!MUSIC CHAMP
関連:フジテレビジョン
関連:浜田雅功
関連:深田恭子 IN MY ROOM
関連:和田アキ子
関連:ネタ
関連:OBCブンブンリクエスト
関連:大阪放送
関連:ますだおかだ
関連:増田英彦
関連:テレビブロス
関連:誕生日
関連:フランス王妃
関連:マリー・アントワネット
関連:不思議ちゃん
関連:2002年
関連:ブレイク
関連:学習研究社
関連:前世
関連:イルカ
関連:オリンピック
関連:ファンクラブ
関連:ピアノ
関連:作曲
関連:1999年
関連:バラエティ番組
関連:新堂本兄弟
関連:堂本ブラザーズバンド
関連:華原朋美
関連:THE夜もヒッパレ
関連:書道
関連:丸文字
関連:新宿少年探偵団
関連:ユーラシアエクスプレス殺人事件
関連:加藤あい
関連:椎名法子
関連:仲根かすみ
関連:Sowelu
関連:小高早紀
関連:上良早紀
関連:藤原竜也
関連:ナイナイサイズ
関連:堂本光一
関連:篠原ともえ
関連:鈴木亜美
関連:宇多田ヒカル
関連:浜崎あゆみ
関連:仲間由紀恵
関連:黒木瞳
関連:BABY, THE STARS SHINE BRIGHT
関連:KERA
関連:インデックス・コミュニケーションズ
関連:mina
関連:遠藤周作
関連:海と毒薬
関連:トイプードル
関連:ほしのあき
関連:餃子
関連:ゴールデン・アロー賞
関連:ベストスマイル・オブ・ザ・イヤー
関連:日刊スポーツ映画大賞
関連:日本アカデミー賞
関連:日本ジュエリーベストドレッサー賞
関連:ベストスイマー賞
関連:二十歳のベスト・パール・ドレッサー
関連:ゆうばり国際ファンタスティック映画祭
関連:それが答えだ!
関連:ニュースの女
関連:天国のKiss
関連:イマジン (テレビドラマ)
関連:フードファイト
関連:ストロベリー・オンザ・ショートケーキ
関連:First Love (テレビドラマ)
関連:リモート
関連:おとうさん (テレビドラマ)
関連:ハコイリムスメ!
関連:彼女が死んじゃった。
関連:農家のヨメになりたい
関連:南くんの恋人
関連:幸せになりたい!
関連:山おんな壁おんな
関連:ガリレオ (テレビドラマ)
関連:天地人 (NHK大河ドラマ)
関連:華麗なるスパイ
関連:海峡 (テレビドラマ 1997年)
関連:日本放送協会
関連:天国に一番近い男
関連:そして、友だち
関連:TEAM (テレビドラマ)
関連:17年目のパパへ
関連:世にも奇妙な物語
関連:負け組キックオフ
関連:24時間テレビ
関連:Xmasなんて大嫌い
関連:徳川綱吉 イヌと呼ばれた男
関連:和田アキ子 特別企画ドラマ ザ・介護番長
関連:ウメ子
関連:赤い奇跡
関連:大奥 (テレビドラマ)#大奥スペシャル〜もうひとつの物語〜
関連:私の頭の中の消しゴム
関連:君がくれた夏〜がんばれば、幸せになれるよ〜
関連:生きる (テレビドラマ)
関連:黒澤明
関連:世にも奇妙な物語 秋の特別編 (2008年)#死後婚
関連:黒部の太陽 (テレビドラマ)
関連:松竹
関連:リング (ホラー)
関連:東宝
関連:中田秀夫
関連:東映
関連:篠原哲雄
関連:ケリー・チャン
関連:陰陽師II
関連:滝田洋二郎
関連:阿修羅のごとく
関連:森田芳光
関連:中島哲也
関連:天使 (映画)
関連:三池崇史
関連:ウルルの森の物語
関連:長沼誠
関連:文化放送
関連:プレイステーション
関連:エニックス
関連:日本メナード化粧品
関連:松坂慶子
関連:麒麟麦酒
関連:チューハイ
関連:王子製紙
関連:ロッテ
関連:東日本電信電話
関連:資生堂
関連:SEA BREEZE
関連:角川書店
関連:サントリー
関連:なっちゃん
関連:日清食品
関連:コーセー
関連:ロート製薬
関連:明治生命
関連:メナード化粧品
関連:最後の果実
関連:イージーライダー (深田恭子のシングル)
関連:Yukihiro Fukutomi
関連:ポニーキャニオン
関連:コロムビアミュージックエンタテインメント
関連:ジェネオンエンタテインメント
関連:主婦と生活社
関連:アゴなしゲンとオレ物語
関連:講談社
関連:集英社
関連:ぴあ
関連:祥伝社
関連:角川ザテレビジョン
関連:堀越高等学校の人物一覧
関連:日本の歌手
関連:日本の俳優
関連:日本のアイドル
関連:東京都出身の人物
関連:Kyōko Fukada
関連:Kyoko Fukada
関連:Kyôko Fukada
関連:후카다 교코
関連:เคียวโกะ ฟุคาดะ
関連:深田恭子