Ich möchte die Daten eines bestimmten Benutzers über die API abrufen. Im Grunde möchte ich wissen, wie viele Antworten der Benutzer seit seinem Beitritt zum Forum gegeben hat. Ich habe den folgenden Code verwendet (im Grunde habe ich alle user_actions abgerufen, bei denen action_type=5 war, und dann die Anzahl dieser Datensätze ausgegeben). Die endgültige Ausgabe stimmte nicht mit dem überein, was ich in der WebUI sehe. Kann mir jemand erklären, warum das so sein könnte?
import requests, time
defaultHost = #your_default_host
# Header für die Authentifizierung
headers = {
'Api-Key': #YOUR_API_KEY,
'Api-Username':#YOUR_API_USERNAME
}
# Erhöhe den Offset jedes Mal um 30. Die Schleife sollte unterbrochen werden, wenn die Anzahl der Elemente in der Antwort kleiner als 30 ist
offset = 0
data_dict ={"user_actions":[]}
username = #username_for_which_we_want_to_fetch_the_data
# filter=5 # Für "user_replied_to_a_topic"
while True:
time.sleep(0.2)
endpoint = f'https://{defaultHost}/user_actions.json?username={username}&offset={offset}&filter=5'
# Anfrage stellen
response = requests.get(endpoint,
headers=headers)
# Antwort prüfen
if response.status_code == 200:
data = response.json()
num_elements = len(data["user_actions"])
data_dict["user_actions"].extend(data["user_actions"])
offset+=30
if num_elements<30:
break
else:
print(f'Error: {response.status_code}')
break
print(len(data_dict["user_actions"]))