2012-10-20 35 views
1

一個給定的關鍵字,我用新的鳴叫twitter4j。只是想知道,如何從Twitter上獲得「一段時間的推文」。由於twitter4j只能獲得最低限度的推特。檢索在twitter4j

說,我想獲得的關鍵詞「iPhone5的」過去兩週的鳴叫,我將如何使用twitter4j得到這些。

+1

請在你的問題更多的描述。請參閱:如何提出(http://stackoverflow.com/questions/how-to-ask) – askmish

+0

例如,在twitter4j,您可以查詢()關鍵字來搜索微博,但它只能返回最新的那些每次限制數量。所以如果我想在過去的兩週內獲得所有包含關鍵字的推文 - 「ipad mini」,該如何做? – user1756488

回答

4

已經有成千上萬的在過去一小時「iphone5的」鳴叫。這已經比您允許在達到上限之前批量通過搜索API的推文多了。在過去兩週內獲得所有關於熱門話題的推文都是不可能的。您必須縮小搜索範圍,以便不必提出太多請求(每次只能通過查詢獲得100條推文)。你可能會考慮

的另一件事就是尋找一個主題的1000最新的鳴叫,每隔幾分鐘,並存儲在本地。這樣,如果您需要歷史數據,您可以返回到自己的緩存。

public static void main(String[] args) throws TwitterException { 
    Twitter twitter = new TwitterFactory().getInstance(); 

    for (int page = 1; page <= 10; page++) { 
     System.out.println("\nPage: " + page); 
     Query query = new Query("#iPhone5"); 
     query.setRpp(100); // set tweets per page to 100 
     query.setPage(page); 
     QueryResult qr = twitter.search(query); 
     List<Tweet> qrTweets = qr.getTweets(); 

     // break out of the loop early if there are no more tweets 
     if(qrTweets.size() == 0) break; 

     for(Tweet t : qrTweets) { 
      System.out.println(t.getId() + " - " + t.getCreatedAt() + ": " + t.getText()); 
     } 
    } 
} 
+0

♦你知道我在哪裏可以找到獲得100條推文的API ..謝謝 –

+0

@WM。是的,請參閱我發佈的示例代碼。它使用Twitter4J在循環中獲得1000條推文。查看Query對象如何在循環中設置並調用,以便一次獲得100條推文。 –

+0

♦我應該包含哪些軟件包?我包括4j包...但它沒有編譯! –