#r #twitter #empty-list
#r #Twitter #пустой список
Вопрос:
У меня есть список из более чем 1000 дескрипторов Twitter, и я использую getUser()
функцию из twitteR
пакета. Но после примерно 20 успешных возвратов я получаю сообщение об ошибке, в котором говорится, что пустой список передан.
Кто-нибудь может помочь мне выяснить, в чем проблема. Также, когда я запрашиваю одного и того же пользователя по отдельности, я получаю результат.
Ошибка: пустой список передан в twListToDF
library(twitteR)
#here twitter_dig_aud is the list of 1000 or more twitter handles
twitter_data <- lookupUsers(twitter_dig_aud[start:end,])
twitter_data <- twListToDF(twitter_data)
twitter_data <- subset(twitter_data, protected == FALSE)
twitter_data <- data.frame(twitter_data$screenName)
for(i in 1:nrow(twitter_data)){
print(paste("Row number ", i , " of ", nrow(twitter_data)))
id <- twitter_data[i, 1]
print(as.vector(id))
ab <- user_following(id)
}
user_following <- function(id){
#here at this level I am authenticating my twitter connection
library(twitteR)
folw_details <- getUser(id)
if(folw_details$getFriendsCount() == 0){
return()
} else{
#get followeres details
#i get error at this stage saying empty list passed to twListToDF
friends <- twListToDF(folw_details$getFriends())
#Id <- id
friends <- friends$screenName
return(friends)
}
}
Пожалуйста, помогите мне, в чем проблема в этом сценарии. Я сталкиваюсь с той же проблемой при подаче заявки на другие данные, такие как количество подписчиков и количество подписчиков.
Комментарии:
1. Я мало что знаю об API Twitter, но у меня были похожие проблемы с другими API, которые мы из-за ограничения API. Ограничивает ли API Twitter количество запросов за раз? Если это так, это может помочь вставить небольшую задержку..
2. @symbolrush пожалуйста, прочитайте ответ. Спасибо.
Ответ №1:
Я много читал и пробовал несколько способов выяснить и, наконец, кое-что выяснил.Это API twitter, который разрешает только 20-30 запросов за 15 минут.
Итак, я позволил своей программе спать в течение 15 минут, и теперь она работает нормально.
После завершения работы программы я авторизовал свое соединение с Twitter.
Я использовал следующий код:
print("Process sleeps for 15 mins due to twitter API security issues and then it will continue")
Sys.sleep(900)
authorise()
Да, но недостатком является то, что скорость обработки очень низкая.
Спасибо за ваши усилия @symbolrush