存档来自Twitter的直接消息

时间:2015-12-23 18:39:25

标签: api twitter messages

有没有办法下载自己的直接邮件进行存档?

Twitter API限制了对最新200个DM的调用,无法下载完整档案以进行更长时间的对话。

official Twitter Archive似乎根本不包含这些消息。大多数第三方服务(你可能不想让他们访问你的消息)将使用api,他们所能做的最好的事情是经常轮询,不要错过200 DM限制。

有没有其他方法可以从Twitter获取消息?滚动回网站似乎有效,但他们总是以较小的步骤加载较旧的邮件,并从那里复制和粘贴也会产生相当难看的结果。

它不需要完整的twitter-api信息,只需处理,时间和消息(如果可能的话,可能还有媒体链接)。

2 个答案:

答案 0 :(得分:9)

我创建了一个toolhttps://github.com/Mincka/DMArchiver)来下载我的直接消息,还可以下载上传的图片,视频和GIF(如MP4)。

因为它不依赖于API,所以可以下载超过200条消息。该脚本只是模拟"滚动方法"由dimethylarginine描述并解析结果。

主要思想是通过调用以下带有有效auth_token cookie值的URL来循环发出请求,并解析json响应: https://twitter.com/messages/with/conversation?id=1337&max_entry_id=1337

第一个请求不需要max_entry_id值。您需要在每个后续迭代中使用响应中min_entry_id变量的值作为新max_entry_id来获取下一个20条较旧的推文。当max_entry_id不在json响应中时,您就处于线程的开头。

还需要一些标题才能从Twitter获得适当的回复:

'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; WOW64; rv:47.0) Gecko/20100101 Firefox/47.0'
'Accept': 'application/json, text/javascript, */*; q=0.01'
'X-Requested-With': 'XMLHttpRequest'

目前,该工具的输出仅作为类似IRC的对话提供,但我将来可能会添加其他输出样式(HTML,JSON,XML ...)。

答案 1 :(得分:0)

很抱歉让这个帖子恢复生机,但我也一直在看这个。没有第三方应用程序可以做到这一点(据我所知),但看了一下Twitter的源代码,似乎有些摆弄,我可能能够下载它们。我的“研究”表明,当你向上滚动时,它使用JS来加载它上面的推文,使用类似于API的调用。如果您查看Chrome的网络日志,您应该能够看到它的调用位置和呼叫的URL。一个人无法通过浏览器访问它,但如果我再进一步,我会告诉你。

对不起,这还不是一个答案 - 我只是张贴这个,所以我可以更新它,不要忘记这样做。

更新 - 2016年5月10日 - 我设法下载了所有的Twitter DM。它并不优雅,但它有效。它涉及让您的计算机过夜,点击鼠标中键以向上滚动您的DM。一旦完成(它已经到达第一个DM),您可以下载网页并随身携带您的DM。这使用了大量的内存,所以要小心!我现在正在解析HTML,因此它的可读性更高。