所以,我已经弄清楚如何能够获得超过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的第一个答案脚本告诉我如何解决这个问题,我将非常感激
提前致谢!
答案 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;
}