在twitter4j中检索给定关键字的推文

时间:2012-10-20 02:03:45

标签: java real-time twitter4j

我是twitter4j新手。只是想知道如何从Twitter获得“一段时期的推文”。因为twitter4j只能得到最少量的推文。

说,我想获得关键字“iphone5”的最近两周推文,我将如何使用twitter4j获取这些推文。

1 个答案:

答案 0 :(得分: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());
        }
    }
}