Добавление временной шкалы при извлечении данных Twitter в R

Я пытаюсь извлечь данные Twitter для ключевого слова, используя следующий код:

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?

заранее спасибо


person Monish    schedule 17.04.2014    source источник


Ответы (1)


Похоже, Twitter API ограничивает количество возвращаемых твитов. Вы должны проверить это в документации API. Помня об этом ограничении, вы можете использовать аргументы since и sinceID функции searchTwitter() в цикле, например:

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)
}

Возможно, вам придется настроить часть Sys.sleep(10), если вы нажмете ограничения API.

person Ali Cirik    schedule 18.04.2014