1个不稳定版本
0.1.0 | 2019年11月2日 |
---|
#1851 在 解析器实现
385KB
731 行
孵化器
通过将您的社交数据转换为Turtle三元组,跳出Facebook的壳
我是个Facebook的粉丝。他们创建了祖父母也能使用的社交网络,并且对开源生态系统做出了巨大贡献。然而,我更欣赏用户赋权和选择。
在今天的替代方案中,我认为蒂姆·伯纳斯-李(Tim Berners-Lee)对SOLID(基于链接数据原则的分散式社交网络)的愿景为数据所有权提供了最实用的发展前景。它为现有社交网络与标准机构合作、采用链接数据以及SOLID数据所有权模型提供了可能性。
然而,要实现这一点,技术先行者需要参与链接数据生态系统,并学习语义网的基本知识。
本项目旨在通过简化使用链接数据和Turtle表达个人资料的过程来鼓励SOLID的采用。它提供了一个二进制文件,该文件可以将Facebook的下载您的信息转换成SOLID使用的语义网三元组。
注意:如果您想了解更多理论,我建议您阅读SOLID网站上链接数据基础。
步骤1:从Facebook下载您的数据
- 导航到Facebook的下载您的信息。
- 在“格式”下,选择JSON
- 在“您的信息”中,您可以取消选择所有选项,然后仅选中“个人信息”。这是我们唯一需要的数据
- 等待Facebook完成批量导出过程。这可能需要一个小时左右。
- 将zip文件下载到合适的位置
- 解压缩zip文件,并将
profile_information.json
复制到方便的位置
步骤2:[可选]导出您的联系人
Facebook的下载您的信息宣传如下
您可以在任何时间下载您的Facebook信息副本。您可以下载完整副本,也可以仅选择您想要的信息类型和日期范围。您可以选择以易于查看的HTML格式接收您的信息,或者以JSON格式接收,这可以允许其他服务更容易地导入它。
这对于导出个人资料信息和Facebook为广告和跟踪目的而附加的所有元数据非常有用。通过下载您的个人数据,您可以更好地了解Facebook对您的数据,这有助于您做出关于您的隐私设置以及在Facebook上使用时的跟踪舒适度的明智决定。
然而,社交网络中最重要和有价值的数据通常不是您的个人资料信息,而是您的朋友关系,这定义了您在社会图谱中的作用。查看包含我大部分个人资料JSON的压缩文件时,此类数据明显缺失。
尽管Facebook允许您导出“朋友”数据,但这些数据仅显示友人的友好编码名称。从现实角度看,服务需要某种全局唯一标识符(GUID)才能在互联网上识别某人,对于Facebook来说,这可能是用户Facebook个人资料的公共URL。
"John Smith"是无用的,但 https://www.facebook.com/johnjohn.smith.12345 是。
为了解决这个问题,我们可以使用浏览器DevTools和一点JavaScript从我们的Facebook个人资料中抓取这些数据。
- 转到 https://127.0.0.1/bushidocodes/friends。由于性能原因,该页面会懒加载朋友,因此请滚动到朋友部分的底部,直到列出所有朋友。当您处于朋友部分的底部时,应该会看到一个页面断点显示“更多关于你”
- 打开您的浏览器DevTools到控制台(在Windows上的Chromium中为Ctrl+Shift+j)
- 审查以下JavaScript代码,以确信我没有做任何不正当的事情。该脚本基本上提取了您的朋友列表和他们的Facebook个人资料URL。
JSON.stringify([...document.querySelectorAll("[data-testid = 'friend_list_item']")].map(el => [...el.querySelectorAll("*")].filter(child => child.className === "fsl fwb fcb")[0].firstChild).map(el => ({name: el.textContent, target: `${el.getAttribute("href")}`.split("?")[0]})))
- 执行后,您应该看到结果JSON对象的第一部分。在底部(在Chromium中),您有一个复制按钮。点击复制此数据。
- 使用代码编辑器将此数据粘贴到
friends.json
文件中,并将其保存到与profile_information.json
相同的目录中。
第3步:下载并运行二进制文件
- 下载适用于相应平台和架构的二进制文件(目前仅支持x64 Linux和Windows)到与您的JSON文件相同的目录
- 启动命令提示符并导航到包含二进制和JSON文件的文件夹
- 如果您跳过了步骤2,请运行
hatchling.exe profile_information.json out.ttl
。否则,请运行hatchling.exe --friends friends.json profile_information.json out.ttl
。
第4步:验证和编辑输出文件
现在您已经生成了一个Turtle文件,您应该口头检查输出并手动删除受保护的数据。
完成后,您可以使用W3C验证器验证您的文件的正确语法 with the W3C validator
依赖关系
~2.5–4MB
~64K SLoC