この会話には少し遅れてしまいました(まあ、その拡張版ですが :p)。私も Discourse フォーラムからデータを取得したいと考えていましたが、API キーの設定が面倒だったので、もしあなた(または誰か)が任意の Discourse フォーラムから投稿を取得するための簡単なラッパーを求めているなら、こちら をチェックしてみてください。
PyPi でリリースされているので、pip/uv で簡単にインストールできます。レート制限も自動的に処理し、Pydantic で型付けされているため(個人的には開発者体験が向上すると思います)、使い勝手が良いです。使用方法は以下の通りです。
from discourse_reader import DiscourseClient
client = DiscourseClient("https://meta.discourse.org")
# カテゴリを閲覧
for cat in client.categories():
print(f"{cat.name}: {cat.topic_count} トピック")
# トピックとそのすべての投稿を取得
topic = client.topics.get(12345)
print(topic.title)
print(topic.opening_post.cooked) # 元の投稿(HTML)
print(topic.accepted_answer) # 承認された回答、または None
for reply in topic.posts.replies():
print(reply.username, reply.cooked)
pydiscourse ほど包括的ではありませんが、これは意図的なもので、API キーなしで動作するように設計されています。また、Data Explorer プラグインよりも優れたデータや高速なデータを提供するわけではありませんが、スレッドのバッチやシンプルなサイト統計を素早く取得したい場合には便利だと思います ![]()