如何从Facebook下载所有消息?


33

如何从Facebook下载我的所有私人消息?

我真的不需要滚动实际的消息,等待较旧的消息加载,并复制和粘贴,因为到目前为止我收到的消息已超过7k。

我愿意接受任何解决方案。

Answers:


19

要下载数据,请登录Facebook,然后单击右上角的小箭头并选择“帐户设置”。

在“常规帐户设置”的左下角,找到显示“下载Facebook数据的副本”的文本行,然后单击链接。

在此处输入图片说明


1
嗯,很有趣。当我在6月份首次尝试此操作时,Facebook仅向我提供了存档中20-30条最新消息,但现在它给了我所有这些消息。(需要永久存档所有内容,但是很好)
Michael0x2a 2012年

+1这似乎是唯一有效的方法。我仍然感到惊讶的是,由于Facebook API似乎允许访问消息,因此还没有Facebook应用程序。
2013年

5
这不会给您所有消息。如果您每天都在向某人发送消息,那么在这两者之间您会收到很多消息。但是,Facebook数据下载只能追溯到现在。它是不一致的并且相当破裂。
奥斯汀·伯克

1
这对我也不起作用。我有大约18000条消息可供下载。不知道有多少我正在使用这种方法。
hectorpal

似乎现在每个线程的限制为10000。(奇怪的是,同一个人可能有多个线程。不确定为什么会这样。)
tjvr17年

11

首先,使用计算机并打开Goog​​le Chrome浏览器。如果您没有Google Chrome,请下载它。然后使用Google Chrome浏览器访问http://m.facebook.com/messages/

然后单击您要与之一起看到第一条消息的人。

现在按Ctrl+ Shift+ J,然后将此代码粘贴到弹出的下部窗口中,然后按Enter。然后它将继续加载旧消息,直到到达第一条消息为止。这是代码:

setInterval(function () {
document.getElementById('see_older')
.getElementsByClassName('content')[0].click();
}, 500); 

上面的代码也可以在以下网站上找到:http : //jsfiddle.net/magicramki/k9gda3cu/

如果您不想一直返回,则需要停止脚本。为此,您首先需要将其定义为变量:

var myVar=setInterval(function () {
document.getElementById('see_older')
.getElementsByClassName('content')[0].click();
}, 500); 

然后,要停止它,只需输入以下命令:

window.clearInterval(myVar)

您可以随时通过再次输入第一部分来继续执行脚本。

现在,一旦加载了所有内容,您就有两个选择。您可以右键单击页面上的任意位置,然后选择“另存为”,然后将该文件保存在计算机上的某个位置。然后,当您以后想使用它时,可以使用Google Chrome打开它(在Internet Explorer中看起来不正确)。这将保存整个聊天,包括图片和表情符号。当您要搜索特定的一天时,请按Ctrl+ F弹出查找框。然后输入“ 3月2日”,例如,在3月2日启动对话。

第二个选项是突出显示要保存的部分,然后按Ctrl+ 进行复制C。然后打开Microsoft Word,然后按Ctrl+ 将其粘贴到文档中V。现在保存该文件。这将保存文本和图片,但不保存图释。


我确认这是唯一的答案,即a)到2016年8月仍然有效,b)确实做到了问题中的要求。此方法可产生此处提到的所有最佳结果:下载消息,图片和GIF,并保持原始外观。它仍然不保存视频(尽管不能与其他文件一起测试),仅保存低分辨率版本的图像。真正可以保存所有内容(包括高分辨率图像)的更复杂的工具,无论是正式提供还是非正式提供,都将是个不错的选择……虽然找不到任何东西。
Neinstein '16

一年后,它失败并显示以下错误:Uncaught TypeError: Cannot read property 'getElementsByClassName' of null \n at <anonymous>:3:1。您的代码中使用的元素名称似乎已更改。我没有找到它的能力,能否请您更新代码?
Neinstein'9

它也在2018年10月工作。
Shiplu Mokaddim '18 -10-15

请注意,脚本会执行此操作以为您单击“查看较旧的消息”。仍在2019年6月21日星期五工作,我正在等待加载全部
Gellie Ann

5

您可以尝试转到http://m.facebook.com/,然后单击“消息”。

选择一个人以查看历史记录,然后单击一次“查看旧邮件”。

请注意,&start=URL中的那部分是已接收和已发送消息的数量减去7。

注意&page_size=7URL中的部分。目前,Facebook并没有限制这个号码,你可以设置一个数量更大大于起始值。这使它禁用分页并显示找到的所有消息,但跳过的7除外。(如果数字较小,Facebook将仅显示7)。

**要使其在Chrome上运行,请左键单击“查看较旧的消息”,然后选择“在新标签页中打开”,然后您将找到“ page_size =“号进行更改。(2013年5月)


有趣的是,这似乎仅适用于Firefox和IE,而不适用于Chrome。我不太确定为什么。
Michael0x2a'9

在Firefox中也不适合我。Chrome只是不显示URL参数,startpage_sizeURL参数是完全不同的。Firefox显示了它们,但是更改page_size似乎没有效果-我一次仍然只看到几条消息。
2013年

这行之有效,这对于开始对话非常有用。但是您必须仔细阅读每一页才能获得全部内容。
大卫·天宇·王

1
我确认,现在page_size所有三个浏览器(Firefox,IE和Chrome)都不再存在该参数
5agado 2015年

2

我使用一个名为SocialSafe的工具来备份我的所有Facebook内容(几乎所有内容),并且现在包含消息。我可以搜索所有内容,也可以在日记本的小部分中跳出我多年来在Facebook上所做的所有不同操作。


但这是否允许您将它们保存到磁盘上的文件中?如果是,采用什么格式?是否包含表情符号,链接等?
2013年

该应用程序不允许再创建收件箱的邮件备份,据报道在这里
5agado

socialsafe.net报道,该工作已合并到digi.me
Ben Creasy

2

下载您的Facebook数据副本:单击右上角的小箭头,然后选择“帐户设置”。然后找到显示“下载Facebook数据的副本”的文本行,然后单击链接。

我编写了一个方便的python脚本,称为mesExtractor,可帮助您提取Facebook数据中的所有对话。使用此脚本,我可以在一次Facebook数据对话中提取60k +条消息。在这里查看来自github的演示:

航天员


1
您是否有特定的发行许可证?我做了一些修改,我想将其公开发布到我的github上。我可能会把它放在MIT许可证下免费使用(当然,还要相信您)。让我知道您是否愿意不愿意。
事项猫

随便使用它即可:)我只是为了好玩
而已

听起来不错。非常感谢!
事项猫

1

如果您使用的是Chrome浏览器,则我有一个扩展程序专门用于此目的。

这是Facebook的Messages Saver链接。

我没有尝试进行真正的大聊天,但是可以保存我拥有的内容(最多15,000条消息)。您也可以分批保存。

您可以选择将聊天保存为纯文本,包含所有笑脸,表情符号,图片和其他文件的html文件,还是保存为zip文件,然后将所有文件保存在本地计算机上。



-1

在带有消息的页面上,只需转到浏览器菜单并单击“另存为”。每次单击以加载它们,以确保显示所有消息,直到您滚动回到开头。这将保存整个网页,包括您的图片,并且您将能够像在Facebook上原始滚动一样浏览消息。希望这可以帮助!


不幸的是,当您收到来自一个人的超过10万条消息时,此解决方案无法扩展。如果我只想开始一个人,我将不得不坐在电脑前几天。
Michael0x2a 2014年
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.