【问题标题】:Archive Direct Messages from Twitter存档来自 Twitter 的直接消息
【发布时间】:2018-01-08 14:17:56
【问题描述】:

有没有办法下载自己的私信来存档?

Twitter API 将呼叫限制为最新的 200 个 DM,它们无法下载完整的存档以进行更长的对话。

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

还有其他方法可以从 twitter 获取消息吗?回滚网站似乎可行,但他们总是以小步骤加载较旧的消息,然后从那里复制和粘贴也会产生相当丑陋的结果。

不需要完整的twitter-api信息,只要句柄、时间和消息(可能是媒体链接,如果可能的话)应该可用。

【问题讨论】:

    标签: api twitter messages


    【解决方案1】:

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

    因为不依赖API,所以可以下载200多条消息。该脚本只是模拟二甲基精氨酸描述的“滚动方法”并解析结果。

    主要思想是通过使用有效的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...)。

    【讨论】:

    • 虽然此链接可能会回答问题,但最好在此处包含答案的基本部分并提供链接以供参考。如果链接页面发生更改,仅链接答案可能会失效。 - From Review
    • 帖子更新了算法和标头要求。
    【解决方案2】:

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

    抱歉,这还不是一个很好的答案 - 我只是发布这个,所以我可以更新它并且不要忘记这样做。

    更新 - 2016 年 10 月 5 日 - 我已经成功下载了我所有的 Twitter DM。它一点也不优雅,但它确实有效。它涉及让您的计算机在一夜之间打开,单击鼠标中键以向上滚动您的 DM。一旦剧院完成(到达第一个 DM),您可以下载该网页并使用它您的 DM。这会占用大量内存,所以要小心!我现在正在解析 HTML,所以它现在的汤更具可读性。

    【讨论】:

    • 我也是这样做的。我想你可以观察 url 的生成(id 似乎包含在 html 中),导出 cookie,然后通过解析 html、提取最旧的 id 并生成一个 url 下载具有较低 id 的消息的块下载消息。如果你想试验,firefox开发者工具有一个选项“copy curl commandline”,它在命令行中添加useragent、cookies、referer、post-data等来重现请求。
    猜你喜欢
    • 2011-09-17
    • 1970-01-01
    • 1970-01-01
    • 2017-06-22
    • 1970-01-01
    • 1970-01-01
    • 2015-09-15
    • 1970-01-01
    • 2016-05-12
    相关资源
    最近更新 更多