我正在尝试使用以下代码提取关键字的推特数据:
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提取的数据量做任何事情?
提前致谢
答案 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)部分。