【问题标题】:Find ALL tweets from a user (not just the first 3,200)查找用户的所有推文(不仅仅是前 3,200 条)
【发布时间】:2012-01-18 06:43:22
【问题描述】:

使用https://dev.twitter.com/docs/api/1/get/statuses/user_timeline,我可以获得 3,200 条最新推文。但是,像http://www.mytweet16.com/ 这样的某些网站似乎绕过了限制,我浏览 API 文档时找不到任何东西。

他们是如何做到的,或者是否有其他 API 没有限制?

【问题讨论】:

  • 我已经能够使用从该帐户创建的 OAuth(v1.1 用户)令牌获取特定 Twitter 帐户的所有推文。
  • 我们现在在哪里?现在可以通过 tweeter API 检索用户的所有推文吗?
  • 很遗憾,没有:((

标签: api twitter tweets


【解决方案1】:

并非所有 twitter API 用户生来都是平等的——有些人比其他人更平等。

https://dev.twitter.com/docs/streaming-api/methods

对于那些不相称的人,他们建议创造性地使用其他技术。使用带有时间/id 限制的搜索 api 调用可能会获得更多运气

【讨论】:

  • 流媒体api好像只做live tweets而不是history?
  • 当前搜索 api 返回过去 7 天的结果。此外,它说它不会返回所有结果。我怀疑是否有办法使用流 api 来做到这一点。
【解决方案2】:

查看更多信息的唯一方法是在用户的推文计数达到 3200 之前开始保存它们。显示超过 3200 条推文的服务已将它们保存在自己的数据库中。目前没有办法通过任何 Twitter API 获得更多。

http://www.quora.com/Is-there-a-way-to-get-more-than-3200-tweets-from-a-twitter-user-using-Twitters-API-or-scraping

https://dev.twitter.com/discussions/276

第二个链接的注意事项:“……3,200 条限制仅用于浏览时间线。始终可以使用 GET statuses/show/:id 方法通过其 ID 请求推文。”

【讨论】:

    【解决方案3】:

    http://greptweet.com/ 试图通过备份推文来超过 3200 条限制,此外这对于简单的搜索也很有用。

    【讨论】:

    • 此服务已被关闭,因为 TOS 要求处理已删除的推文,而且在技术上不切实际。
    • @DamianYerrick,什么 TOS 以及为什么不切实际?
    • @Pacerier 两者都在答案中链接的文档中得到了回答:“Greptweet 服务已暂停,因为我们存储推文。具体来说,我们违反了 Twitter 的 IB3 和 IB6 的 terms。作为该服务的开发者,好像是too complex to implement a service to handle deletions。”
    • @Damian,这严重违反了数据解放阵线
    • @Pacerier erm,你知道 Twitter 不是 Google 的产品吗?
    【解决方案4】:

    您可以使用 twitter search page 绕过 3,200 限制。但是,您必须在搜索结果页面中向下滚动多次。例如,我搜索了来自@beyinsiz_adam 的推文。这是搜索结果的链接:https://twitter.com/search?q=from%3Abeyinsiz_adam&src=typd&f=realtime

    现在为了向下滚动多次,您可以使用以下 javascript 代码。

        var myVar=setInterval(function(){myTimer()},1000);
        function myTimer() {
            window.scrollTo(0,document.body.scrollHeight);
        }
    

    只需在 FireBug 控制台中运行它。并等待一段时间加载所有推文。

    【讨论】:

    • 这似乎不适用于某些帐户,例如Shedletsky
    • 我投了赞成票,但这并没有绕过标签搜索限制。
    • 这不起作用。在某个点(变化),您无法进一步滚动。
    • 在 10K 条推文之后,我的 12G RAM 笔记本电脑开始出现延迟,但是,是的,这行得通。问题是您无法停止脚本。我建议将函数命名为var,然后通过将null 分配给变量来停止它。
    【解决方案5】:

    您可以查看https://www.allmytweets.net/

    这会保存所有推文。

    【讨论】:

    • 该页面声明它只收到 3200 条推文。
    【解决方案6】:

    我可以确认最大值可以略高于 3200。我现在正在达到 3231。

    【讨论】:

    • 无法确认。我刚刚尝试了一个拥有超过 5 万条推文的用户,而我即将获得 3224 条推文。
    • @ChrisSeline 你是对的。那时我运行这段代码时一定有重复的推文或其他东西。我最多收到 3231 条推文。
    【解决方案7】:

    我在这个 (Twitter) 行业工作了很长时间,见证了 Twitter API 和文档的许多变化。我想向你澄清一件事。没有办法超过 3200 条推文限制。 Twitter 甚至在其新的高级 API 中也没有提供这些数据。

    某人可以超越此限制的唯一方法是保存单个 Twitter 用户的推文。

    有一些工具声称拥有广泛的数据库并提供超过 3200 条推文。其中很少有人是我所知道的followersanalysis.comkeyhole.co

    【讨论】:

    • 亲爱的阿琼。我想问你,每当尝试合并同一用户保存的两个不同的推文数据集时,你建议使用什么变量来删除重复的推文。换句话说,我想更新一周前保存的用户@a 的推文,因此我将旧保存的数据集与我现在收集的最多 3200 条推文合并。但是,如果我删除重复的 ID 推文,在我看来,许多重复的推文仍保留在数据框中。你能帮我解决这些吗?推文的 id 是否应该识别每条唯一的推文?非常感谢
    • 您需要使用 id_str 变量来删除重复的推文。两条推文不能有相同的 id_str(或 id)
    【解决方案8】:

    您可以使用我编写的绕过限制的工具。

    它以 JSON 格式保存推文。

    https://github.com/pauldotknopf/twitter-dump

    【讨论】:

    • 有点难以开始工作,但它确实做到了@PaulKnopf 所说的。
    猜你喜欢
    • 2013-12-25
    • 2013-01-03
    • 1970-01-01
    • 1970-01-01
    • 2016-12-24
    • 2017-11-14
    • 1970-01-01
    • 1970-01-01
    • 2023-04-04
    相关资源
    最近更新 更多