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を書き換えるか、一旦リストに入れてからスライスすると良いです。