Cheguei um pouco tarde a essa conversa (bem, à sua continuação :p), mas eu também queria extrair dados de um fórum Discourse e não queria a complicação de configurar uma chave de API. Se você (ou qualquer pessoa) quiser um wrapper simples para buscar posts de qualquer fórum Discourse, pode conferir aqui.
Lançado no PyPI, então é fácil instalar com pip/uv, lida com rate limiting automaticamente e é tipado com Pydantic (o que, na minha opinião, melhora a experiência do desenvolvedor). Uso:
from discourse_reader import DiscourseClient
client = DiscourseClient("https://meta.discourse.org")
# Navegar pelas categorias
for cat in client.categories():
print(f"{cat.name}: {cat.topic_count} tópicos")
# Obter um tópico com todos os seus posts
topic = client.topics.get(12345)
print(topic.title)
print(topic.opening_post.cooked) # o post original (HTML)
print(topic.accepted_answer) # resposta aceita ou None
for reply in topic.posts.replies():
print(reply.username, reply.cooked)
Não é tão abrangente quanto o pydiscourse, mas isso é intencional, já que funciona sem uma chave de API. Também certamente não oferecerá dados melhores ou mais rápidos do que o plugin Data Explorer, mas acho que é legal se você só quer extrair rapidamente um lote de threads ou estatísticas simples do site ![]()