我是twitter4j
新手。只是想知道如何从Twitter获得“一段时期的推文”。因为twitter4j
只能得到最少量的推文。
说,我想获得关键字“iphone5”的最近两周推文,我将如何使用twitter4j
获取这些推文。
答案 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());
}
}
}