twopyを使ってみた

2chからスレッドやレスのデータを取得するために、以前は、

http://d.hatena.ne.jp/kokoromo/20080822/1219352356

というのを使っていましたが、吐き出されるJSONは変な場所にダブルクォーテーションが混じっていることがあって面倒くさいです。あと何かよく分からないけど取得が遅いような気もします。そこでtwopyというPython用の2chライブラリを知ったので使ってみました。

twopyの使い方は
映像奮闘記: Pythonistaのための2chライブラリ"twopy"
にある通り。

>>> from twopy import *
>>> board = Board("http://live24.2ch.net/eq/")
>>> board.retrieve()
200
>>> thread = [t for t in board if "あれって地震雲だよね?" in t.title][0]
>>> print u"%s (%i)" % (thread.title, thread.res)
【画像必須】あれって地震雲だよね?72【予言無用】 (943)
>>> thread.retrieve()
200
>>> res = [r for r in thread][940:]
>>> for r in res: print r.render()
... 
941 名前:M7.74(京都府) [sage]: 2009/07/27(月) 14:03:34.73 id:jMuYujB4
>>940
「かなとこ雲」で調べてみよう
夏に普通に見られます

ブォケ!と言わずに優しく書いてみました。

942 名前:M7.74(東海・関東) []: 2009/07/27(月) 14:11:32.08 id:BBewJzGj
>>940
5時前・埼玉・方角ワカラン

943 名前:M7.74(東海・関東) [sage]: 2009/07/27(月) 14:13:06.05 id:BBewJzGj
>>941 ありがとうorz
しかもあげちゃったぜ!!


Threadの__getitem__がsliceの受け渡しに対応していなかったので、レスを途中から取りたい場合はthread.pyを書き換えるか、一旦リストに入れてからスライスすると良いです。