Сколько раз выполняется вызов API в твиттер для каждого вызова search_tweets(), зависит ли это от количества полученных твитов?
Я новичок в программировании R или Twitter API.
Когда я запускаю следующий кусок кода:
#https://cran.r-project.org/web/packages/rtweet/index.html
#http://127.0.0.1:1410
#Twitter Data Analysis
twitter_packages <- c("rtweet","httpuv")
### checking if packages are already installed and installing if not
check.install.load.Package<-function(package_name){
if(!package_name%in%installed.packages()){
install.packages(package_name)
}
library(package_name,character.only = TRUE)
}
for(package in twitter_packages){
check.install.load.Package(package)
}
## whatever name you assigned to your created app
#appname <- "Tech Dope"
appname <- "RTestApplicationSub"
## api key (example below is not a real key)
#key <- "XXXXXXXXXXXXX"
key <- "XXXXXXXXXXXXX"
## api secret (example below is not a real key)
#secret <- "XXXXXXXXXXXXX"
secret <- "XXXXXXXXXXXXX"
## create token named "twitter_token"
twitter_token <- create_token(
app = appname,
consumer_key = key,
consumer_secret = secret)
india_india <- get_trends("India")
for(india in as.vector(india_india$trend)){
gc()
## create token named "twitter_token"
# twitter_token <- create_token(
# app = appname,
# consumer_key = key,
# consumer_secret = secret)
fetchedTweets=search_tweets(india,10000,include_rts = FALSE,type = "mixed")
write.csv(fetchedTweets,paste0("C:\\Users\\Subhrajit\\Documents\\R Scripts\\MY_DATA_SETS\\TEST_DATA_TWITTER\\",india,".csv"), row.names = FALSE)
}
fetchedTweets=search_tweets("rohingya india",10000,include_rts = FALSE,type = "mixed")
write.csv(fetchedTweets,paste0("C:\\Users\\Subhrajit\\Documents\\R Scripts\\MY_DATA_SETS\\TEST_DATA_TWITTER\\rohingya.csv"), row.names = FALSE)
class(fetchedTweets)
#write.csv(fetchedTweets,"C:\\Users\\Subhrajit\\Documents\\R Scripts\\MY_DATA_SETS\\TEST_DATA_TWITTER\\Aadhar.csv")
Я получаю эту ошибку:
Searching for tweets...
Finished collecting tweets!
Searching for tweets...
Finished collecting tweets!
Searching for tweets...
Finished collecting tweets!
Searching for tweets...
Finished collecting tweets!
Searching for tweets...
Finished collecting tweets!
Searching for tweets...
Error in x[[1]] : subscript out of bounds
In addition: Warning messages:
1: rate limit exceeded.
2: rate limit exceeded.
Теперь, согласно твиттерской документации API, вызовы API ограничены окном запросов / 15 минут (авторизация пользователя) 180 запросов / окном 15 минут (авторизация приложения) 450
Но в моем случае я получаю "превышение скорости" после того, как search_tweets() вызывается 6 раз.
Я мог бы избежать ошибки, переписав цикл как:
i=1;
for(india in as.vector(india_india$trend)){
gc()
i<-i+1
if(i%%5==0){
Sys.sleep(600)
}
## create token named "twitter_token"
# twitter_token <- create_token(
# app = appname,
# consumer_key = key,
# consumer_secret = secret)
fetchedTweets=search_tweets(india,10000,include_rts = FALSE,type = "mixed")
write.csv(fetchedTweets,paste0("C:\\Users\\Subhrajit\\Documents\\R Scripts\\MY_DATA_SETS\\TEST_DATA_TWITTER\\",india,".csv"), row.names = FALSE)
}
Мои вопросы таковы: 1) Сколько раз для каждого вызова API search_tweets() выполняется вызов API в твиттер? 2) Зависит ли это от количества полученных твитов?