正規表現で抜き出す.

ソースは以下のスレ.

【報告】大型艦/新型艦建造スレ30【検証】 - 艦これ専用掲示板

#!/usr/bin/env python
# -*- coding: utf-8 -*-

import re
import pandas as pd

if __name__ == '__main__':
    f = open('【報告】大型艦 新型艦建造スレ30【検証】 - 艦これ専用掲示板.htm')
    text = f.read()
    f.close()

    regexp = re.compile(r"""
    (?P<fuel>\d+)\/
    (?P<ammunition>\d+)\/
    (?P<steel>\d+)\/
    (?P<bauxite>\d+)\/
    (?P<material>\d+)\/
    (?P<dock>[^\/\<]+)\/
    (?P<result>[^\(\<\/]+)\(
    (?P<secretary>[^\)\<\/]+)\)""", re.X)

    results = regexp.findall(text)
    frame = pd.DataFrame(results)

    frame.columns = ['fuel','ammunition','steel','bauxite','material',
        'dock','result','secretary']

    ## euc-jpからutf-8に変更
    for row in range(frame.shape[0]):
        for col in [5,6,7]:
            frame.ix[row,col] = frame.ix[row,col].decode('euc-jp')

    print frame.head()

1つのスレから2206件の報告を取得できた.

ほとんどの人がきちんとフォーマットに則って投稿していて素晴らしかった.

生データはこちら



blog comments powered by Disqus

Published

03 October 2014

Tags