【问题标题】:twitter4j - No result returns if I use since & until restrictionstwitter4j - 如果我使用 since & until 限制,则不会返回任何结果
【发布时间】:2016-01-06 12:23:12
【问题描述】:

当我将sinceuntil 限制添加到我的Query 时,尽管在此期间我的关键字有很多推文,但没有任何结果返回。如果我不使用since 限制,结果仍然相同。

我如何使用 twitter4j 检索某个时间范围内的推文

这是我的实现中的一个 sn-p:

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。我正在使用 twitter4j 的最新稳定版本,即 4.0.4

【问题讨论】:

    标签: java twitter twitter4j


    【解决方案1】:

    遗憾的是,您无法在该时间范围内收到推文。 来自documentation

    搜索 API 不是所有推文的完整索引,而是最近推文的索引。目前该索引包括 6-9 天的推文。

    因此,您只能从搜索 API 获取最近的推文。对数据也要小心,因为它是关于相关性而不是完整性,来自同一个文档:

    在参与之前,重要的是要知道 Search API 关注的是相关性而不是完整性。这意味着搜索结果中可能会丢失一些推文和用户。如果你想匹配完整性,你应该考虑使用 Streaming API。

    如果您真的需要较旧的推文,您将不得不从其他来源获取它们,例如 Gnip。否则,您将不得不以不同的方式处理您的问题。

    如果您拥有想要获取信息的所有用户的姓名(或 ID),您可以从每个用户那里获得 timelines,从而获得最多 3200 条推文。

    【讨论】:

    • 据我所知,twitter4j Streaming API 不允许设置时间范围,因为它的目标是实时流数据。 Gnip 似乎是一种商业产品;我需要一个开源解决方案。
    • Twitter4j 允许您设置范围,但仅适用于 Twitter 搜索 API(只能让您返回几天)。据我所知,没有开源解决方案可以获取较旧的推文,几个月前您可以使用 Topsy 做一些技巧,但该服务已死
    猜你喜欢
    • 1970-01-01
    • 2020-09-11
    • 1970-01-01
    • 2017-12-28
    • 2017-12-09
    • 2020-10-03
    • 2017-03-19
    • 2017-05-20
    • 2012-08-08
    相关资源
    最近更新 更多