2013-11-25 33 views
0

我有一個檢索所有(我的意思是「所有」)到給定日期或日期之間的要求。 但我寫的代碼給了我tweets,但只爲今天。我實現了分頁,但沒有幫助,我得到了多個頁面,數據不是多餘的。但是目前的數據仍然有限。我只得到600-700推文。我使用了hasNext(),它在6-7頁之後檢索到false。 我對這個API相當陌生,我對框架沒有太多的想法,所以原諒我,如果我聽起來真的很天真。使用java的無限推文搜索

繼承人的代碼:

Query search=new Query(searchKeyWord); 
    QueryResult results; 
    search.setCount(100); 
    //search.setMaxId(-1); 
    search.setSince("2013-01-01"); 
    search.lang("en"); 
// search.setUntil("2013-05-01"); 
    int i=0; 
    //TwitterFactory.getSingleton().search(search);// 
    do{ 
     i++; 
     System.out.println("Page "+i); 
     results=tweety.search(search); 

    for(Status stats : results.getTweets()){ 

    Text=stats.getText(); 
    Text=Text.replace("\n", " "); 
    writer.append(stats.getUser().getScreenName()+";"+Text+";"+stats.getCreatedAt()+";"+"\n"); 

    } 

    search=results.nextQuery(); 


    } while(search!=null); 

的要求是對大量數據,以便更鳴叫文本挖掘檢索的更好。當然,我會限制自從,直到日期。但是,如果我爲較早的時間間隔設置日期,那麼只有該間隔的最後一天才能檢索到鳴叫。

我在這裏錯了嗎?有什麼我需要添加或更改以獲取所有推文?我知道費率限制。這是我接收有限數據的原因嗎?

在此先感謝。

回答

0

您應該同時使用搜索API和流式API。我也在用twitter數據進行數據挖掘,我正在做的是我剛剛實現了兩個不同的應用程序來收集推文。你也可以做同樣的事情。流媒體API只需要一個Twitter帳戶用於令牌和身份驗證內容。但是,您應該擁有更多的搜索API帳戶。如果你有更多的問題,請告訴我。

+0

嘿謝謝。我想我也會用同樣的方法。但事情是我們將使用的關鍵字類型將通過應用許多上下文限制來過濾掉推文。因此,我們不會收到持續的數據流,這意味着我們只是在長時間連接上浪費時間。 我們需要至少一個裝滿數據的包來進行分析,比如10000到1000000條推文。這是不可能的。不知何故,微博限制了你通過計數和日期收到的數據。這意味着您只能在當前日期前幾天搜索推文。 –

+0

我以爲我每天都會使用相同的搜索api程序來收集一段時間內的數據。這樣我們就可以獲得一些實驗數據,直到我們獲得來自twitter的特殊訪問權限。 BTW是否提供任何權利? –