当我为我添加since
&until
限制时Query
,尽管在此期间关键字有很多鸣叫,但没有任何结果返回结果。如果不使用since
限制,结果仍然相同。
如何使用twitter4j在某个时间范围内检索推文?
这是我的实现的摘录:
Query query = new Query(); query.setQuery(topic + " +exclude:retweets"); query.setCount(100); query.setLang("en"); query.setSince("2015-08-29"); query.setUntil("2015-11-29"); QueryResult result = twitter.search(query); List < Status > tweets = result.getTweets();
ps。我使用的是4.0.4的最新稳定版twitter4j。
可悲的是,您无法在该时间范围内获得推文。从文档中:
Search API不是所有Tweets的完整索引,而是最近Tweets的索引。目前,该索引包括6-9天之间的Tweets。
因此,您只能从搜索API获取最新的推文。同样,请小心数据,因为它们来自同一文档中的相关性而不是完整性:
在参与之前,重要的是要知道Search API专注于相关性而不是完整性。这意味着搜索结果中可能缺少一些推文和用户。如果要匹配完整性,则应考虑改用Streaming API。
如果您确实需要旧的推文,则必须从Gnip等其他来源获取它们。否则,您将不得不以不同的方式处理您的问题。
如果您拥有要获取信息的所有用户的姓名(或ID),则可以从每个用户获得多达3200条推文的时间表中获取时间表。