从Twitter获取历史数据

8

我希望能获取最近三个月的Twitter消息,这是一个关于IT技术的研究项目。除了技术挑战以外,这是否有可能?使用一些缓慢轮询机制来避免速率限制器?

Twitter API指出:“客户端可以通过页面和计数参数请求多达3,200个状态的时间线REST API”。这些是每小时?每天?还是……永远?

有什么建议吗?理论上是否可能?有人曾经做过类似的事情吗?

谢谢! 马可


全面概述:https://gwu-libraries.github.io/sfm-ui/posts/2017-09-14-twitter-data - Nemo
7个回答

7
Twitter以三周为限制,过期的推文将不再“可用”。在某些情况下,你只能获取一周的推文。最好将推文存储到未来的三个月内。许多人怀疑推特是否会保存这些推文。
你是在寻找任意的推文吗?如果是,请查看Streaming API的status/sample方法。流式API使用持久HTTP套接字,可能需要一些编程技巧,但是一旦运行起来,它非常优雅。我建议设置一个小脚本将status/sample中的推文转储到数据库中。只需几天时间,你就可以得到大量数据。

3
同意无法获取旧数据的说法,但我不认为任何人都应该怀疑 Twitter 正在存档每一条推文,不这样做是荒谬的。 - pents90
2
“Many rightly doubt if they're even persisted by Twitter” 是什么意思?如果不使用 API,个人资料上的推文仍会显示超过 3 周。或者我误解了你的意思。 - Jack
@JackNicholson 推文是可用的,但不是以它们在您的主页或标签 feeds 上出现的索引形式。 - rob

3
您可以使用搜索API,不需要进行搜索,每页返回最多100条,然后每分钟浏览两次页面(每小时120次 - 比速率限制低30次)。但是,如果我的数学没错的话,这可能会让您每小时获得720,000条推文.....问题在于,Twitter在过去3个月中添加了大约17.5亿条推文。所以如果我的数学没错的话,那将需要2361天或6年才能完成此任务。
您可以在Google Groups上的Twitter开发讨论区提出此问题,或联系Twitter白名单,以便您可以每小时进行多达20,000个请求。
就我个人而言,我认为这是不可能的。

那么,在这种情况下,更多的是尽可能获取,并考虑未转储的估计百分比?我已被列入白名单,所以理论上如果我想要全部获取,可能需要大约20天时间。 - Marco
2
我相信搜索API只能返回6到8天的数据。 - airportyh

1
DataSift声称即将推出Twitter历史数据API,您可以在此处注册以便在API上线时得到通知。

0

您可以使用Gnip的历史PowerTrack工具读取Twitter历史数据。它将为您提供自第一条推文以来的所有Twitter数据,并且非常简单易用。


0

Keyhole可以为您提供xls格式的历史推文或在可视化仪表板中呈现它们。预览仅显示最近的几条推文,但是如果您发送电子邮件请求历史数据,则可以获取。

请参见:http://keyhole.co/conversation_tracking


0

当您最初提出这个问题时,可能还不存在这个功能,但是“PeopleBrowsr”API非常适合此类需求,您可以通过单个API调用返回1400天前的数据:https://developer.peoplebrowsr.com/pb

希望能对您有所帮助!


-3

您可以使用我们公司开发的Sifter服务免费获取数据范围和成本的估算。如果您决定购买数据访问权限,您可以通过我们的文本分析平台DiscoverText获得数据,您可以在该平台上搜索、过滤、去重、聚类、人工编码和机器分类数据。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接