而且,几乎所有的App收藏夹都没有提供「标签」功能。知乎可以选择收藏到一个自己创建的收藏夹,而少数派、什么值得买、小红书等网站甚至只能收藏到默认收藏夹。B站可能是最能满足我所说的标签功能的软件了,收藏视频的时候可以选择收藏到多个自己创建的收藏夹。那么有没有一种方法能给少数派等网站加上「标签」功能呢?(这里期待少数派官方能够上线这个功能哟。)
整体思路是:通过爬虫获取自己的收藏夹内容并保存到数据库中,然后将这些内容通过NoitonAPI发送到自己的Notion中,然后在Notion中手动添加标签,以此来达到我们的目的。
我们遇到的第一个挑战,就是如何获取自己的收藏夹内容?
由于之前我有写过一些小爬虫,所以自然而然就想到了利用爬虫来获取收藏夹的方式。由于各个网站的爬虫方式各不相同,以下的爬虫我们就以「什么值得买」为例。
我使用的手机是iPhoneXR,使用Thor这个App进行抓包后(具体怎么抓包建议自行搜索,不方便展开细说),我们可以发现什么值得买的获取收藏夹链接为:
其实获取到收藏夹信息之后我们就可以直接通过NotionAPI发送给Notion了。这里我多此一举保存到数据库其实只是为了方便日后的迁移工作,毕竟谁也不能保证Notion的在线服务会一直很「保险」。如果你觉得你并不需要保存到数据库中,那么这一节的内容完全可以略过。
我选用的数据库是Mongo。之所以没有采用常用的MySQL,是因为Mongo是一种非关系型数据库,里面的数据是以json的形式存储的,对每一个字段的类型并没有严格的限制,很方便作为爬虫的数据库(因为爬虫经常会遇到一些莫名其妙的数据)。
部署好Mongo服务后,我们创建一个favorites数据库,然后创建一个smzdm集合(类似于MySQL的表)作为我们存储什么值得买收藏夹的目的地。
终于讲到了NotionAPI!现在我们的数据库里已经有了所有的收藏夹信息,那么如何发送到Notion呢?
首先我们要在Notion中创建一个Database用于保存收藏夹内容,具体的字段根据数据库中的内容动态调整。
创建完机器人之后,别忘了将它invite到刚刚创建的database中,只有这样这个机器人才可以帮助你实现各种指令。
从Mongo数据库中读取数据之后,我们通过POST方式向Notion发送我们的数据。
值得一提的是,img字段我设置成了Files&Medias格式,这种格式既支持自己上传的图片,也支持图床链接。恰好什么值得买返回的图片链接可以用在这里。由于是图床链接,所以需要像上面的data一样组装格式,否则可能无法正确上传照片。
组装完数据后运行代码,我们就可以将数据库中的所有内容发送到Notion中啦,最终的效果如下图所示
我们肯定不希望每次同步到Notion都需要手动执行代码,一个定时任务是最好的选择。
我使用的是Mac,Unix的设计可以方便地使用crontab来创建定时服务。如果你使用的是Windows,那么计划任务也可以满足我们的需求。
通过向crontab中添加一条运行python的命令,我们就可以将收藏夹定时更新到Notion啦。crontab的具体用法也请自行查阅哦~
目前我将什么值得买、小红书、少数派三个网站的收藏夹都搬运到了我的Notion。通过在Notion里给它们打标签能让我快速找到我想要的信息。