Twitter API速率限制

3

我想在几周内从Twitter收集数据。

为此,我使用RStudio Server和crontab自动运行类似以下的几个脚本:

require(ROAuth)
require(twitteR)
require(plyr)

load("twitter_authentication.Rdata")
registerTwitterOAuth(cred)

searchResults <- searchTwitter("#hashtag", n=15000, since = as.character(Sys.Date()-1), until = as.character(Sys.Date()))
head(searchResults)

tweetsDf = ldply(searchResults, function(t) t$toDataFrame())
write.csv(tweetsDf, file = paste("tweets_test_", Sys.Date() - 1, ".csv", sep = ""))

在某些日子里,每个标签只有几条推文(最多100条),因此脚本可以顺利运行。但是,在其他一些日子里,会有成千上万条某个标签的推文(当然,我不使用“hashtag”这个术语,而是我研究所需的术语)。
我可以在“searchTwitter”中添加“retryOnRateLimit=10”。但是,当我每天搜索多个标签时,如何在crontab中计时这些查询呢?
为了组织这些查询,我需要知道在15分钟的时间间隔内运行脚本一次能够收集多少推文!有人知道答案吗? (根据Twitter API的速率限制,我可以进行180个查询每15分钟窗口,但这是多少推文呢?)

我刚试图收集提到@WhiteHouse的昨天的推文。在超过11,000条推文后,我达到了速率限制。 - feder80
1个回答

1

不要每隔几分钟就执行一次搜索,你应该使用流媒体API

这将为您提供通过Twitter流动的所有数据的实时反馈。您可以为搜索词设置过滤器。

没有“速率限制” - 您只需建立一个持久连接,Twitter会传送与您的搜索词匹配的所有推文的样本。


好的,但是如果我想要在四个月的时间内收集包括多个标签的数据,那么当我只有一个持久连接时,这不会成为问题吗?这意味着我不能在四个月内使用RStudio服务器! - feder80
1
不,这不是问题。设置一个服务器,给它唯一的 Twitter API 密钥,然后开始监视并将结果转储到您的数据库中。 - Terence Eden
有人能提供一个代码示例来解决这个问题吗? - nak5120

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接