如何检索用户的所有推文而不仅仅是前3200条,因为Twitter限制了其时间轴和API的数量。

48

我已经成功使用从该账户创建的OAuth(v1.1用户)令牌获取了特定Twitter账户的所有推文。 - mpatek
我们现在在哪里?现在是否可以通过推特 API 检索到用户的所有推文? - tagoma
很遗憾,没有 :(( - apscience
参考链接:https://gwu-libraries.github.io/sfm-ui/posts/2017-09-14-twitter-data - Nemo
第一个链接已损坏。 - Julien
5个回答

30

您可以使用 Twitter 搜索页面 来绕过 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 - Buge
1
我点了赞,但这并不能绕过标签搜索限制。 - sertaconay
2
这个不起作用。在某个特定的点(变化),你无法再滚动了。 - Tyler Biscoe
1
发了1万条推特后,我12G内存的笔记本开始变得很卡,但是这个方法确实有效。问题在于你不能停止脚本。我建议用var命名函数,然后通过将变量赋值为null来停止它。 - WesternGun

9

要想查看更多推文,唯一的办法就是在用户的推文数达到3200之前开始保存它们。那些展示超过3200条推文的服务已经将它们保存在自己的数据库中。目前没有任何Twitter API可以获取超过3200条的推文。

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

来自第二个链接的注释:“...3200的限制仅适用于浏览时间线。使用GET statuses/show/:id方法,始终可以通过ID请求推文。”


2

有点难以运作,但它确实做到了@PaulKnopf所说的。 - Ole Tange

2
我在Twitter行业工作已经有很长时间了,见证了Twitter API和文档的许多变化。我想向你澄清一件事情。没有办法突破3200条推文的限制。即使是在其新的高级API中,Twitter也不提供这些数据。
唯一的方法是保存一个Twitter用户的推文。
有一些可用的工具声称拥有广泛的数据库并提供超过3200条推文。我知道其中几个,比如followersanalysis.comkeyhole.co

亲爱的阿朱,我想问你,在尝试合并两个不同保存的相同用户推文数据集时,你建议使用哪个变量来删除重复的推文。换句话说,我想要更新一周前保存的用户@a的推文,因此我将旧的保存数据集与现在收集的最多3200条推文合并。然而,如果我删除重复的ID推文,则似乎仍有许多重复的推文留在数据框中。你能帮我解决这个问题吗?推文的ID是否应该识别每个唯一的推文?非常感谢。 - Marco Mello
你需要使用id_str变量来删除重复的推文。两个推文不能有相同的id_str(或id)。 - Arjun Jain

0
你可以使用 Python 库 snscrape 来实现。或者你可以使用 ExportData 工具来获取用户的所有推文,该工具会返回预处理过的 CSV 和电子表格文件。第一种选项是免费的,但提供的信息较少,需要更多的手动操作。

但是它的信息较少,请澄清它缺少哪些信息。 - TheTechRobo the Nerd

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