twitter4j什么时候停止时没有更多推文可用?

时间:2014-05-13 17:19:26

标签: api twitter twitter4j

所以,我已经弄清楚如何能够获得超过100条推文,感谢How to retrieve more than 100 results using Twitter4j

但是,什么时候让脚本停止并在达到最大结果时停止打印?例如,我设置

int numberOfTweets = 512; 

而且,它发现只有82条推文符合我的查询。

但是,因为:

while (tweets.size () < numberOfTweets)

它仍然继续不断地一直查询,直到我最多每15秒发出180个请求的速率限制。

我真的是java的新手,所以如果您能通过修改How to retrieve more than 100 results using Twitter4j的第一个答案脚本告诉我如何解决这个问题,我将非常感激

提前致谢!

1 个答案:

答案 0 :(得分:0)

您只需修改try {}块中的内容即可。一种解决方案是检查在while中的上一个循环(previousLastID)中找到的最后一条推文的ID是否与收集的新批次(newTweets)中的最后一条推文(lastID)的ID相同。如果是,则表示新批处理的元素已存在于上一个数组中,并且我们已经达到了此hastag的可能推文的末尾。

try {
      QueryResult result = twitter.search(query);
      List<Status> newTweets = result.getTweets();
      long previousLastID = lastID;
      for (Status t: newTweets) 
        if (t.getId() < lastID) lastID = t.getId();
      if (previousLastID == lastID) {
        println("Last batch (" + tweets.size() + " tweets) was the same as first. Stopping the Gathering process");
        break;
      }