1

大家好,我会问你为什么我的代码没有得到我在查询中要求的所有推文,它只是在第一页结果旁边停止。我问是因为六个月前同样的代码运行良好。

Query query = new Query("Carolina OR flood lang:en since:2015-10-04 until:2015-10-09");

            query.setCount(100);
            QueryResult result;
            createNewFile(contFile);
            do {
                result = twitterInstance.search(query);                 
                List<Status> tweets = result.getTweets();
                for (Status tweet : tweets) {                       
                    if (cont > MAX_TWEET_PER_FILE) {
                        cont = 1;
                        contFile++;
                        writer.close();
                        createNewFile(contFile);
                    }
                    writeToFile(cont,tweet);
                    cont++;
                }


                if(result.getRateLimitStatus().getRemaining()<1){

                    try {
                        Thread.sleep(result.getRateLimitStatus().getSecondsUntilReset() * 1000);
                    } catch (InterruptedException e) {
                        e.printStackTrace();
                        throw new RuntimeException(e);
                    }
                }

            } while (query!=null);
            writer.flush();
            writer.close();
            System.exit(0);

所以在第一次迭代之后do,查询总是空的,我得到的只是周五几个小时的推文。我以为我无法获得超过一周的推文,但这只是一天(3天前......)

有没有我错过的 Twitter 人员的新闻或更新?

4

1 回答 1

0

尝试使用:

do{

...


}while((query = result.nextQuery()) != null);

如果存在,您的查询将从下一页获取结果。

于 2016-11-12T23:43:33.597 回答