簡體   English   中英

在一個月內用Java獲取所有推文

[英]get all tweets in a month in java

我想收集所有帶有此#標簽的推文:“#Iran”,用於2017年的第一個月,我嘗試了此代碼,但無法正常工作,請幫忙。

    ConfigurationBuilder configurationBuilder = new ConfigurationBuilder()
            .setDebugEnabled(true)
            .setOAuthAccessTokenSecret(AccessTokenSecret)
            .setOAuthAccessToken(AccessToken)
            .setOAuthConsumerKey(ConsumerKey)
            .setOAuthConsumerSecret(ConsumerSecret);

    TwitterFactory twitterFactory = new TwitterFactory(configurationBuilder.build());
    Twitter twitter = twitterFactory.getInstance();




    Query query = new Query("#IRAN");

    query.setCount(100);

    query.setSince("2017-01-01");
    query.setUntil("2017-02-01");

    QueryResult queryResult = twitter.search(query);

    while (queryResult.hasNext()) {
        List<Status> status = queryResult.getTweets();
        for (Status status1 : status) {
            System.out.println("user : " + status1.getUser() + "\n" + status1.getText() + "\n" +
                    "ID : " + status1.getId() + "\n" + "Date : " + status1.getCreatedAt() +
            "\n\n*****************************************************");
        }
        query = queryResult.nextQuery();

    }

遺憾的是,從2017年第一個月開始,您將無法使用搜索API獲得推文。 文檔中

Search API不是所有Tweets的完整索引,而是最近Tweets的索引。 目前,該索引包括6-9天之間的Tweets。

因此,您只能從搜索API獲取最新的推文。 同樣,請小心數據,因為它們來自同一文檔中的相關性而不是完整性:

在參與之前,重要的是要知道Search API專注於相關性而不是完整性。 這意味着搜索結果中可能缺少一些推文和用戶。 如果要匹配完整性,則應考慮改用Streaming API。

如果您確實需要舊的推文,則必須從Gnip等其他來源獲取它們。 否則,您將不得不以不同的方式來解決您的問題。

如果您擁有要獲取信息的所有用戶的姓名(或ID),則可以從每個用戶獲得多達3200條推文的時間表中獲取時間表

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM