Я написал следующий скрипт, который выбирает друзей пользователей Twitter (в данном примере «barackobama») партиями по 75 000 (5000 друзей на вызов API x 15 вызовов API) каждые 15 минут, используя rtweet
. Однако после завершения работы скрипта я обнаружил, что идентификаторы друзей повторяются через фиксированный интервал. Например, строки 1, 280001 и 560001 имеют одинаковый идентификатор. Строки 2, 280002 и 560002 имеют одинаковый идентификатор и т. Д. Мне интересно, правильно ли я понимаю next_cursor
в API.
u = "barackobama"
n_friends = lookup_users(u)$friends_count
curr_page = -1
fetched_friends = 0
i = 0
all_friends = NULL
while(fetched_friends < n_friends) {
if(rate_limit("get_friends")$remaining == 0) {
print(paste0("API limit reached. Reseting at ", rate_limit("get_friends")$reset_at))
Sys.sleep(as.numeric((rate_limit("get_friends")$reset + 0.1) * 60))
}
curr_friends = get_friends(u, n = 5000, retryonratelimit = TRUE, page = curr_page)
i = i + 1
all_friends = rbind(all_friends, curr_friends)
fetched_friends = nrow(all_friends)
print(paste0(i, ". ", fetched_friends, " out of ", n_friends, " fetched."))
curr_page = next_cursor(curr_friends)
}
Любая помощь будет оценена.