Un peu en retard sur cette conversation (bon, sur sa suite :p), mais je voulais aussi extraire des données d’un forum Discourse sans avoir la corvée de configurer une clé API. Si vous (ou n’importe qui) souhaitez un simple wrapper pour récupérer des publications depuis n’importe quel forum Discourse, vous pouvez le consulter ici.
Disponible sur PyPI, donc facile à installer avec pip/uv, il gère automatiquement la limitation de débit et est typé avec Pydantic (ce qui améliore l’expérience développeur, à mon avis). Utilisation :
from discourse_reader import DiscourseClient
client = DiscourseClient("https://meta.discourse.org")
# Parcourir les catégories
for cat in client.categories():
print(f"{cat.name}: {cat.topic_count} sujets")
# Récupérer un sujet avec tous ses messages
topic = client.topics.get(12345)
print(topic.title)
print(topic.opening_post.cooked) # le message original (HTML)
print(topic.accepted_answer) # réponse acceptée ou None
for reply in topic.posts.replies():
print(reply.username, reply.cooked)
Ce n’est pas aussi complet que pydiscourse, mais c’est intentionnel puisqu’il fonctionne sans clé API. Il ne proposera certainement pas de données meilleures ou plus rapides que le plugin Data Explorer, mais je trouve que c’est pratique si vous voulez simplement récupérer rapidement un lot de fils de discussion ou des statistiques simples du site ![]()