2015-12-02 88 views
0

根据标题,如果Twitter有自己的限制,我怎么能够获得至少10,000条推文呢?如何在Twitter API Rate Lmit中获取至少10,000条推文?

Twitter允许每15分钟进行180次查询。所以我打算使用TimerTimerTask设定的时间间隔,并保持运行代码,直到我得到万个鸣叫是这样的:

timer.schedule((TimerTask) getTweets("$FB up"),0,900000); 

的问题是,每15分钟就会得到相同的数据作为第15分钟。我如何使它在之前的15分钟内停止?

下面是对 getTweets功能(字符串项)

int wantedTweets = 10000; 
     long lastSearchID = Long.MAX_VALUE; 
     int remainingTweets = wantedTweets; 
     Query query = new Query(term); 
     try{ 

      while(remainingTweets > 0) 
      { 
      remainingTweets = wantedTweets - tweets.size(); 
      if(remainingTweets > 100) 
      { 
       query.count(100); 
      } 
      else 
      { 
      query.count(remainingTweets); 
      } 
      QueryResult result = twitter.search(query); 
      tweets.addAll(result.getTweets()); 
      Status s = tweets.get(tweets.size()-1); 
      long firstQueryID = s.getId(); 
      query.setMaxId(firstQueryID); 
      remainingTweets = wantedTweets - tweets.size(); 
      } 

      for (int i=0 ; i < tweets.size() ; i++) { 
       b = tweets.get(i); 
       //System.out.println(s); 
       //System.out.println("@" + b.getUser().getScreenName() + " - " + b.getText()); 
      } 
     } 
     catch(TwitterException te) 
     { 
      System.out.println("Failed to search tweets: " + te.getMessage()); 
     } 
     return b; 

回答

1

使用twitter streaming API代替

+0

我忽略这一点。感谢您的建议。我如何设定限制?它看起来像它的实时。 – kylas

+0

除了流是采样数据外,没有其他限制。你可以永远保持联系(在理论上)。 –

+0

我认为它正是OP所要求的。遵循你所说的是如此狭隘以至于无用。 –

相关问题