2015-10-12 26 views
1

你好傢伙我會問你爲什麼我的代碼沒有得到我在查詢中詢問的所有推文,它只是停止接下來的第一頁結果。我在問,因爲相同的代碼在六個月前工作得很好。twitter4j result.nextQuery()給我總是空的

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一次迭代後,查詢永遠是空的,什麼我獲得大約只有週五幾個小時的tweet。我認爲我不能夠獲得超過一週的推文,但這只是一天(3天前...)

是否有任何新聞或Twitter的更新我錯過了?

回答

0

嘗試使用:

do{ 

... 


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

您的查詢將得到下一個頁面的結果,如果它存在。