【问题标题】:How to grab at least 10,000 tweets given the Twitter API Rate Lmit?鉴于 Twitter API 速率限制,如何抓取至少 10,000 条推文?
【发布时间】:2015-12-02 20:00:28
【问题描述】:

根据标题,鉴于 Twitter 有自己的限制,我如何才能获取至少 10,000 条推文?

Twitter 每 15 分钟允许 180 个查询。所以我打算使用TimerTimerTask 设置一个间隔并继续运行代码,直到我收到10,000 条这样的推文:

timer.schedule((TimerTask) getTweets("$FB up"),0,900000);

问题在于,每 15 分钟它会返回与前 15 分钟相同的数据。如何让它从前 15 分钟停止的地方继续?

下面是函数 getTweets(字符串术语)

int wantedTweets = 10000;
        long lastSearchID = Long.MAX_VALUE;
        int remainingTweets = wantedTweets;
        Query query = new Query(term);
         try{ 

          while(remainingTweets > 0)
          {
            remainingTweets = wantedTweets - tweets.size();
            if(remainingTweets > 100)
            {
              query.count(100);
            }
            else
            {
             query.count(remainingTweets); 
            }
            QueryResult result = twitter.search(query);
            tweets.addAll(result.getTweets());
            Status s = tweets.get(tweets.size()-1);
            long firstQueryID = s.getId();
            query.setMaxId(firstQueryID);
            remainingTweets = wantedTweets - tweets.size();
          }

          for (int i=0 ; i < tweets.size() ; i++) {
               b = tweets.get(i);  
              //System.out.println(s);
              //System.out.println("@" + b.getUser().getScreenName() +  " - " + b.getText());
          }
        }
        catch(TwitterException te)
        {
          System.out.println("Failed to search tweets: " + te.getMessage());
        }
         return b;

【问题讨论】:

    标签: java twitter twitter4j


    【解决方案1】:

    【讨论】:

    • 我忽略了这一点。谢谢你的建议。我该如何设置限制?它看起来像是实时的。
    • 除了流是采样数据之外没有真正的限制。您可以(理论上)永远保持联系。
    • 我认为它完全符合 OP 的要求。照着你说的做,就是心胸狭隘,没用。
    猜你喜欢
    • 2018-08-20
    • 2014-08-05
    • 1970-01-01
    • 2019-03-07
    • 2016-04-21
    • 1970-01-01
    • 1970-01-01
    • 2022-08-22
    • 1970-01-01
    相关资源
    最近更新 更多