我是新来的twitter4j
。只是想知道,如何从推特上获取“一段时期的推文”。作为twitter4j
唯一可以获得最少推文的人。
说,我想获得关键字“iphone5”的最近 2 周推文,我将如何使用twitter4j
.
在过去的一个小时内,已经有数千条“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());
}
}
}