2017-09-12 3 views
0

このハッシュタグですべてのつぶやきを収集したい:2017年の最初の月に「#Iran」、このコードを試したがうまくいかなかった。1ヶ月以内にすべてのつぶやきをjavaで入手

ConfigurationBuilder configurationBuilder = new ConfigurationBuilder() 
      .setDebugEnabled(true) 
      .setOAuthAccessTokenSecret(AccessTokenSecret) 
      .setOAuthAccessToken(AccessToken) 
      .setOAuthConsumerKey(ConsumerKey) 
      .setOAuthConsumerSecret(ConsumerSecret); 

    TwitterFactory twitterFactory = new TwitterFactory(configurationBuilder.build()); 
    Twitter twitter = twitterFactory.getInstance(); 




    Query query = new Query("#IRAN"); 

    query.setCount(100); 

    query.setSince("2017-01-01"); 
    query.setUntil("2017-02-01"); 

    QueryResult queryResult = twitter.search(query); 

    while (queryResult.hasNext()) { 
     List<Status> status = queryResult.getTweets(); 
     for (Status status1 : status) { 
      System.out.println("user : " + status1.getUser() + "\n" + status1.getText() + "\n" + 
        "ID : " + status1.getId() + "\n" + "Date : " + status1.getCreatedAt() + 
      "\n\n*****************************************************"); 
     } 
     query = queryResult.nextQuery(); 

    } 

答えて

0

悲しいことに、悲しいことに、検索APIを使用して2017年の最初の月からつぶやきを得ることはできません。 documentationから:

検索APIは、完全なすべてのツイートのインデックスが、代わりに最近のツイートの指標ではありません。インデックスには、ツイートの6〜9日間が含まれています。

したがって、検索APIから最新のつぶやきしか取得できません。データとあまりにも注意してください、それが同じドキュメントから、完全ではない関連性についてですbeacuse:

巻き込ま前に、それは検索APIは関連性に焦点を当て、完全されていないことを知っておくことが重要です。つまり、一部のツイートやユーザーが検索結果に表示されないことがあります。完全性を一致させたい場合は、代わりにStreaming APIの使用を検討する必要があります。

本当に古いツイートが必要な場合は、Gnipなどの他のソースから取得する必要があります。それ以外の場合は、あなたの問題を別の方法でアプローチする必要があります。

情報を取得したいすべてのユーザーの名前(またはID)がある場合は、各ユーザーから最大3200個のツイートを取得するtimelinesを取得できます。

関連する問題