0

次のコードを使用して、キーワードの 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"))

接続を有効にするには、Web ブラウザで https://api.twitter.com/oauth/authorize?oauth_token=Cwr7GgWIdjh9pZCmaJcLq6CG1zIqk4JsID8Q7v1s にアクセスしてください

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 によってフェッチされたデータの量と何か関係がありますか?

前もって感謝します

4

1 に答える 1

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) の部分を調整する必要がある場合があります。

于 2014-04-18T05:30:53.723 に答える