Un po’ in ritardo per questa conversazione (beh, per il suo prolungamento :p), ma volevo anche estrarre dati da un forum Discourse e non volevo la seccatura di configurare una chiave API. Se tu (o chiunque altro) desidera un semplice wrapper per estrarre post da qualsiasi forum Discourse, puoi darci un’occhiata qui
È stato rilasciato su PyPi, quindi è facile da installare con pip/uv, gestisce automaticamente il rate limiting ed è tipizzato con Pydantic (a mio avviso migliora l’esperienza di sviluppo). Ecco come si usa:
from discourse_reader import DiscourseClient
client = DiscourseClient("https://meta.discourse.org")
# Sfoglia le categorie
for cat in client.categories():
print(f"{cat.name}: {cat.topic_count} argomenti")
# Ottieni un argomento con tutti i suoi post
topic = client.topics.get(12345)
print(topic.title)
print(topic.opening_post.cooked) # il post originale (HTML)
print(topic.accepted_answer) # risposta accettata o None
for reply in topic.posts.replies():
print(reply.username, reply.cooked)
Non è completo come pydiscourse, ma è intenzionale dato che funziona senza una chiave API; inoltre, sicuramente non offrirà dati migliori o più veloci rispetto al plugin Data Explorer, ma penso sia utile se vuoi semplicemente estrarre rapidamente un batch di thread o statistiche di base del sito ![]()