API経由で特定のユーザーのデータを取得したいです。基本的には、ユーザーがフォーラムに参加してからの返信数を把握したいです。以下のコードを使用しました(基本的に、action_type=5 のすべての user_actions を取得し、そのレコード数を表示しました)。最終的な出力がWebUIで確認できるものと一致しませんでした。 なぜこのようなことが起こるのか、誰か説明してもらえませんか?
import requests, time
defaultHost = #your_default_host
# 認証用のヘッダー
headers = {
'Api-Key': #YOUR_API_KEY,
'Api-Username':#YOUR_API_USERNAME
}
# オフセットを毎回30ずつ増やします。レスポンスの要素数が30未満になったらループを抜けます。
offset = 0
data_dict ={"user_actions":[]}
username = #username_for_which_we_want_to_fetch_the_data
# filter=5 # 「ユーザーがトピックに返信した」用
while True:
time.sleep(0.2)
endpoint = f'https://{defaultHost}/user_actions.json?username={username}&offset={offset}&filter=5'
# リクエストを実行
response = requests.get(endpoint,
headers=headers)
# レスポンスを確認
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"]))