对于给定的两天时间段标签,我需要尽可能多的推文.问题是它们中有太多(猜测~1百万)只使用一段时间规格提取:
>如果我指定retryOnRateLimit = 120,肯定会花费很多时间
>如果我不这样做,我会很快被阻止,并且只会在半天内发送推文
对我来说,显而易见的答案是通过给定的参数提取随机样本,但我无法弄清楚如何去做.
我的代码在这里:
a = searchTwitteR('hashtag', since="2017-01-13", n = 1000000, resultType = "mixed", retryOnRateLimit = 10)
最后一次尝试停止了17,5千条推文,其中只有12小时
附:提取转推可能有用,但我仍然不知道如何在searchTwitteR()中指定它.
最佳答案 twitteR软件包不赞成使用
rtweet package.如果我是你,我会使用rtweet来获取这些推文的最后一条.
从技术上讲,您可以使用rtweet包中的search_tweets()直接指定100万.不过,我建议将其分解成碎片,因为收集200000条推文需要几个小时.
library(rtweet)
maxid <- NULL
rt <- vector("list", 5)
for (i in seq_len(5)) {
rt[[i]] <- search_tweets("hashtag", n = 200000,
retyonratelimit = TRUE,
max_id = maxid)
maxid <- rt[[i]]$status_id[nrow(rt[[i]])]
}
## extract users data and combine into data frame
users <- do.call("rbind", users_data(rt))
## collapse tweets data into data frame
rt <- do.call("rbind", rt)
## add users data as attribute
attr(rt, "users") <- users
## preview data
head(rt)
## preview users data (rtweet exports magrittr's `%>%` pipe operator)
users_data(rt) %>% head()