在R中提取Twitter数据时添加时间轴

时间:2014-04-17 06:20:53

标签: r data-extraction twitter-r

我正在尝试使用以下代码提取关键字的推特数据:

cred<- OAuthFactory$new(consumerKey='XXXX', consumerSecret='XXXX',
                        requestURL='https://api.twitter.com/oauth/request_token',
                        accessURL='https://api.twitter.com/oauth/access_token',
                        authURL='https://api.twitter.com/oauth/authorize')

cred$handshake(cainfo = system.file("CurlSSL", "cacert.pem", package = "RCurl"))

要启用连接,请将您的网络浏览器指向: https://api.twitter.com/oauth/authorize?oauth_token=Cwr7GgWIdjh9pZCmaJcLq6CG1zIqk4JsID8Q7v1s 完成后,记录提供给您的PIN并在此处提供:8387466

registerTwitterOAuth(cred)
search=searchTwitter('facebook',cainfo="cacert.pem",n=1000)

但即使n = 1000,该函数也只返回99条推文的列表。我还尝试了具有特定时间线的相同功能:

search=searchTwitter('facebook',cainfo="cacert.pem",n=1000,since='2013-01-01',until='2014-04-01')

但是这个函数返回一个空列表。

任何人都可以帮助我,使用正确的附加查询集,以便我可以从特定时间线中提取数据,而不会对推文数量有任何限制吗?它是否必须对API提取的数据量做任何事情?

提前致谢

1 个答案:

答案 0 :(得分:0)

看起来Twitter API限制了返回推文的数量。您应该在API文档中查看它。记住限制,您可以在循环中使用searchTwitter()的 since sinceID 参数,例如:

for (i in 1:20) {
  if (i==1) search = searchTwitter('facebook',cainfo="cacert.pem",n=2, since='2014-04-15')
  else search = searchTwitter('facebook',cainfo="cacert.pem",n=2, since='2014-04-15', sinceID=search[[1]]$id)
  print(search)
  Sys.sleep(10)
}

如果达到API限制,则可能需要调整Sys.sleep(10)部分。

相关问题