0

我是新来的twitter4j。只是想知道,如何从推特上获取“一段时期的推文”。作为twitter4j唯一可以获得最少推文的人。

说,我想获得关键字“iphone5”的最近 2 周推文,我将如何使用twitter4j.

4

1 回答 1

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());
        }
    }
}
于 2012-10-20T15:52:25.887 回答