La requête API de catégorie télécharge tous les sujets

J’analyse l’utilisation de notre forum et je télécharge des informations sur les sujets de chaque catégorie.

Cependant, la requête ne récupère pas toujours tous les sujets. Je m’en suis rendu compte car elle avait précédemment récupéré certains sujets qui ont maintenant disparu de notre dernier rapport.

Exemple :

Le sujet est présent lorsque j’ouvre la page de la catégorie dans le navigateur.

Le code que j’utilise :

from dotenv import load_dotenv
import os
import requests

load_dotenv()

headers = {
    "Content-Type": "application/json",
    "Api-Username": os.environ["USERNAME"],
    "Api-Key": os.environ["API_KEY"],
}

method = "GET"
url = "https://forum.aragon.org/c/proposals-for-main-dao/50.json"

response = requests.request(method, url, headers=headers)
topics = response.json()["topic_list"]["topics"]

found_topics = list()
for topic in topics:
    found_topics.append(topic["id"])

print(sorted(found_topics))

{topic: topic in found_topics for topic in [3519, 3528]}

>>>
[3075, 3224, 3299, 3312, 3449, 3472, 3474, 3526, 3554, 3555, 3557, 3583, 3586, 3592, 3613, 3624, 3626, 3659, 3674, 3677, 3680, 3694, 3695, 3699, 3702, 3710, 3716, 3720, 3725, 3737]

{3519: False, 3528: False}

Pourquoi cela se produit-il et comment puis-je le résoudre ?

Alors vous devriez utiliser le plugin d’exploration de données.

Voir Discourse Data Explorer et Comment exécuter des requêtes Data Explorer avec l’API Discourse.

1 « J'aime »

Merci, mais nous ne pouvons pas installer ce plugin pour le moment. Pouvons-nous faire quelque chose pour corriger l’API ?

Ceci est un plugin officiel, stable et bien entretenu, qu’est-ce qui vous empêche de l’installer ?

L’interface utilisateur utilise un système de pagination pour télécharger chaque ensemble de sujets. C’est probablement pourquoi vous ne pouvez pas tous les voir.

Vérifiez la requête que votre navigateur envoie pour des exemples de chaque appel (voir l’onglet réseau)

Cependant, comme @pfaffman l’a très justement souligné, ce n’est pas la manière la plus appropriée d’obtenir des données pour l’analyse car elle est optimisée pour l’interface utilisateur.

1 « J'aime »