从0到1搭建个人知识库系统 ·(三)公众号文章剪藏与搜索
优采云 发布时间: 2022-09-12 13:55从0到1搭建个人知识库系统 ·(三)公众号文章剪藏与搜索
定义:将文章链接保存在浏览器书签夹或者其他位置
优点:保留原始形态、操作简便
缺点:需在线访问、存在原始文件删除风险、超过一定体量后书签无法维护
全文复制
定义:将文章内容全选、复制粘贴到word或其他文件载体
优点:操作简便、可离线访问、内容可以复制检索
缺点:样式丢失、超过一定体量后文件无法维护
网页长截图
定义:使用浏览器插件( 例如 “FireShot” ) 将文章网页导出为长截图
优点:保留原始形态、可离线访问
缺点:内容无法复制检索、阅读体验不佳、超过一定体量后文件无法维护
另存为“PDF”
定义:在浏览器网页右键,选择打印为PDF
优点:操作简单、可离线访问
缺点:内容不易复制检索、阅读体验不佳、超过一定体量后文件无法维护
另存为“html”
定义:在浏览器网页右键,选择另存为网页html
优点:操作简单、可离线访问、内容可复制检索
缺点:样式可能丢失、下载的文件琐碎,超过一定体量后文件无法维护
另存为“单文件网页”
定义:将二进制文件格式将完整的网页保存到单个文件中,其中包含样式、图像、视频或音频以及所有需要的文件,即使计算机未连接到网络,也可以完全加载页面。
用法:针对Chrome浏览器,可以右键存储为单文件网页,也可以使用浏览器插件SingleFile,实现一键下载单文件网页
优点:可离线访问、接近原始形态、内容可复制检索
缺点:超过一定体量后文件无法维护
小结:以上不同方案,有各自的适用场景,从构建可检索、可阅读的知识库角度而言,需要满足的核心需求包含2个层面:
第一、满足人类阅读的需要,追求方便美观、操作简单
第二、满足机器阅读的需要,支持程序读取、批量分析
综合看,以单文件网页作为存档格式,可以兼顾以上两方面需求。
三、爬虫
困于微信公众号封闭生态,获取文章数据并非易事,但也绝非难事。
选项一:硬核的办法
实现自动化从微信公众号采集数据,就要用上爬虫知识,其中可能需要绕过各种限制,典型如:
1、使用 Fiddler、Charles 等网络调试工具,对微信客户端进行网络抓包,获取cookie 等必要访问参数。
2、使用 Python 下载工具库、格式转化工具库,请求、下载和转换数据。
3、使用 数据库,进行数据缓存、持久化。
4、使用 定时任务、定期休眠等访问策略,防止因短时间获取大量数据触发反爬虫风控机制造成封 IP 问题。
5、使用 异步任务机制,提升数据采集效率。
选项二:钞能力的办法
有需求的地方就有供给,你可以花点小钱换来自由。
在 Google 或 某宝,使用 “公众号文章采集” 等关键词,可以打开一片新天地,一站式解决问题还赠送售后服务。
于是,这世上可能没有啥技术难题,有的只是笨蛋和白嫖怪。
数据获取效果:
四、搜索
面对大量*敏*感*词*,可以使用搜索的方法代替文档管理。
于是问题的本质就变成:如何建立一个本地的全文搜索引擎,对非结构化数据建立索引,实现秒级响应的内容搜索服务。
同样的,建立这样一款自用的搜索引擎,并非易事,但也绝非难事。
选项一:硬核的方法
从 0 到 1 实现本地全文搜索引擎系统,主要技术栈:
后端:Python + Elasticsearch + Enterprise Search + Nginx
前端:VUE / React + UI框架
关键流程:
1、从第三步采集的离线 html 文件中,解析并提取文本内容;
2、将文本内容入 ES 库,同步设定 Schema、中文分词策略;
3、使用 Enterprise Search 快速完成搜索引擎权重、候选推荐服务搭建;
4、使用 前端框架 低成本完成搜索页面搭建;
5、使用 Nginx 部署前后端服务;
用企业级方案做个人服务,会有一种用大炮打蚊子的……爽感。
选项二:钞能力的办法
利用 DEVONthink 自动实现本地化全文索引、搜索功能。
关键流程:
1、把第三步采集的离线 html 文件夹,拖到 DEVONthink,软件会自动完成索引构建
2、使用 DEVONthink 自带搜索框,或者 Alfred、Raycast 等桌面全局搜索入口软件,实现快捷内容检索
效果示意:
五、更多
1、如果你恰好在使用 飞书 ,可以尝试使用剪存插件,以达到近似效果。
「 飞书剪存是一个兼容于各大浏览器的扩展程序。它可以将自动剥离广告后的网页正文一键保存至飞书云文档。」具体说明参见:
#tabs0