【问题标题】:Twitter API not showing old tweets?Twitter API 不显示旧推文?
【发布时间】:2012-12-20 22:59:58
【问题描述】:

我的 Twitter API 有问题。我过去发过推文(大约 400 条),但最近我没有发过任何推文。当我尝试使用 twitter api 获取推文时,没有结果。如何检索较旧的推文?

【问题讨论】:

    标签: twitter


    【解决方案1】:

    Twitter 不会通过搜索 API 返回超过一周的推文。请查看以下链接中的限制部分:

    https://dev.twitter.com/docs/using-search

    【讨论】:

    • 没有任何免费的解决方案,但您可以使用 twitter 合作伙伴(如 data-sift)检索长达 2 年的推文。你可以看看他们的网站。 datasift.com
    • -1 该限制适用于 Twitter 搜索 API,而不是 Twitter API。
    • 但是要检索较旧的推文,您必须使用 Search API,还是有其他方法可以检索我不知道的较旧的推文?
    • 有没有办法通过特定的标签进行搜索以获取超过 7 天的推文?
    【解决方案2】:

    我和你有同样的问题,所以在看到 Twitter Web Search 工作后,我开始实施自己的解决方案,你可以在我的 GitHub 上看到。它是用 Java 实现的,但它会在我的博客上发表一篇文章来解释如何用其他语言来做。我已经毫无问题地下载了推文,我的最后一次测试是在 2014 年从一些特定用户那里解析超过 600k。

    【讨论】:

    • 你能用这篇文章分享你博客的链接吗?我想用 Python 来做。
    • 你好,我是用python做的,看看:github.com/Jefferson-Henrique/GetOldTweets-python
    • 有没有可能有一个 R 实现?还能用吗?
    • 我问是因为我从自述文件中尝试了你的命令行实现,复制/粘贴准确,它只是对我大喊大叫提供参数。
    • 实际上,我已经让您的 Java 实现工作了。 Python 只是出于某种原因讨厌我。有没有办法修改它,而不是只包括 M/D/Y,获取月/日/年小时:分钟:第二个时间戳?
    【解决方案3】:

    您可以使用 REST API 资源 GET statuses/user_timeline 从任何公共时间线检索最新的 3200 条推文。

    【讨论】:

    • 这很高兴知道,但如果您要搜索具有特定主题标签的所有推文,则不是解决方案
    • @Flion 是的,但这是一个不同的问题!
    • 有没有办法获得具有特定搜索条件的旧推文?例如,任何提及某个@user 的推文?
    • 使用 GET statuses/user_timeline 可以获取仅由用户发布的推文。
    • @bittu 你可以得到任何普通用户发布的推文。
    【解决方案4】:

    这在 Twitter 网络搜索门户中是可能的,但不能通过他们的 API。无赖 https://twitter.com/search-home

    【讨论】:

      【解决方案5】:

      这详细说明了@bennett-mcelwee 的回答,其中可以通过一系列 API 调用来获取多达 3200 条最新的用户推文。目前,使用GET statuses/user_timeline API 调用,用户在 1 个请求中可以获得的最大推文数为 200。要获取用户在其时间线上发布的所有推文,请执行以下操作:

      第 1 步

      对此端点进行 GET 调用,传递参数 count=200

      第 2 步

      从第1步返回的数据中,获取最后一条推文的ID

      进行相同的 GET 调用,但这次传入参数 max_id=,后跟从第一次调用返回的最后一条推文的 ID,或 -1。比如max_id=9987999

      第 3 步

      重复第 2 步,直到您没有获得任何新(旧)数据。

      出于我的目的,我可以使用 https://github.com/sferik/twitter 在 Ruby 中做到这一点

      一旦客户端对象被实例化,就很简单:

      tweets = client.user_timeline('foobar', count: 200)
      max_id = tweets.last.id - 1
      tweets << client.user_timeline('foobar', count: 200, max_id: max_id)
      

      从这里你会得到一些想法,编写一个循环是相当简单的,直到你获得了所有可以从 API 中获取的推文。

      【讨论】:

        猜你喜欢
        • 2013-08-19
        • 2018-02-12
        • 1970-01-01
        • 1970-01-01
        • 2012-04-18
        • 2011-08-25
        • 2013-04-09
        • 1970-01-01
        • 2012-12-31
        相关资源
        最近更新 更多