很多人都有类似的困扰:手头明明拿到了一个高质量的飞书知识库,里面几十篇甚至上百篇飞书文档,内容体系完整、价值很高。可问题是,它始终不在自己掌控之中。

一方面,文档管理权属于原作者,随时可能被删除,或者直接收回。到时候,哪怕你有心保存,也无从下手。

另一方面,即使眼下能阅读,但它终归无法按照你自己的逻辑去拆解、分类、重组到自己的知识体系中。

想要把这些内容真正转化为自己知识库的一部分,就必须有一份属于自己的副本。那怎么通过自动化,把整个知识库完整地拿到手里呢?

之前我在不会编程的我开发了一款近900行指令的自动化RPA应用,完美解决98%以上复制受限的飞书文档!!_飞书表格复制脚本-CSDN博客中分享了如何通过影刀RPA将单篇飞书文档另存本地Word的思路,今天的这篇分享作为一个衍生需求的补充,而关键就在于拿到知识库中所有飞书文档的链接。

一、方案介绍

一个相对成熟、成体系的飞书知识库,往往是:文档多,层级深,动辄数十上百篇。

而这里的文档目录区域,使用的是懒加载技术,这意味着:只有新目录进入可视区域时(子目录被展开),才会发起网络请求被加载出来,因此我们需要不断滚动该区域,逐级展开文档目录,才能进一步获取文档信息。

第一步,也是我们面临的第一个难点,就是"展开所有层级的目录",靠传统人工手动操作?那你可有的搞了,有没有"一键展开"的方案?

起初我想的是开发专门的油猴脚本来处理,如下图,点绿色按钮就行。

接下来就是第二步,运行影刀RPA去循环遍历点击每个文档目录元素,并抓取文档标题和文档链接,写入Excel中。

这个思路是完全可行的,我也真的跑通了。后面为了真正实现"一键运行",避免两个步骤中断需人为再次介入,我进一步把脚本功能融入了影刀RPA中,直接启动RPA,坐等Excel表格生成就行。

二、脚本功能

通过在页面添加一个“展开所有”按钮,实现一键自动化、深层次地展开左侧目录树的全部层级。

1. 功能特性

  • 一键全自动展开:无需手动逐个点击,脚本会自动模拟滚动和点击操作,智能遍历并展开左侧目录树中所有被折叠的节点。
  • 智能循环终止:采用了稳定高效的单向扫描算法,当一次完整的从上到下遍历后未发现任何可展开项时,即判定任务完成并自动停止,有效解决了在超长目录下陷入无限循环的问题。
  • 可视化控制按钮:在页面右上角生成一个绿色的“展开所有”按钮,执行过程中变为红色的“停止”按钮,允许用户随时中断操作。
  • 多重容错机制:内置最大扫描轮数限制、滚动停滞检测和模拟深度点击,提升在复杂情况下的运行稳定性与成功率。

2. 适用场景

该脚本主要适用于需要频繁使用飞书知识库,特别是处理那些文档数量庞大、目录结构层级非常深的大型知识库的用户。

它解决了手动逐级点击展开目录的痛点,能够帮助用户快速获取知识库的完整结构概览,极大地提升了浏览和查找特定文档的效率。

三、RPA应用流程

这一部分的逻辑是:在展开后的目录里,从上到下逐个点击,把文档标题和链接抓取出来,逐条写入Excel。

这个过程中,我们需要处理几个很关键的逻辑:

  • 退出判断:每轮Foreach循环前将变量“本轮是否发现新元素”置为 False;遍历目录时如遇新 WikiToken 就改为 True。若一轮结束后仍为 False,说明无新内容加载,已到列表底部,流程结束。
  • 防重复处理:每个目录都会生成一个唯一的 WikiToken,影刀会把处理过的记录下来,避免重复点击。
  • 滚动补偿:考虑到有些目录太长,屏幕显示不全,设置了“每点几次就滚一下”,确保能把所有目录都加载出来,也为了使得加载出的列表项进入到可视区域方便点击。

四、如何获取&使用

1. 使用须知

(1)该应用基于影刀RPA开发,请确保电脑端已正确下载影刀RPA应用并登录账号。影刀RPA官网:https://www.yingdao.com/product/

(2)该项目为基于Edge浏览器开发的网页自动化应用,暂不适配其他浏览器。

(3)自定义配置项及变量使用说明

  • 已处理文档元素列表_wikiToken = []。这是用于防重的列表,每个文档都有自己的唯一wikiToken值。
  • 本轮是否发现新元素。引入布尔值变量"本轮是否发现新元素"=False,False表示本轮尚未发现任何新内容。在一轮ForEach循环结束后,IF 条件判断该变量是否还等于 False”,如果为False,则这意味着屏幕上的所有元素都已经是我们处理过的旧内容了,并且上一次滚动后没有出现任何新东西。我们认定已经到达列表底部,可以安全地结束整个流程。
  • 循环点击次数、向下滚动鼠标滚轮次数和点击几次滚动1次页面。这是用于触发内循环滚动计数。即:假设页面获取到30个展开的目录元素,而屏幕尺寸决定了其不能一次性全部展示在可视区域内,当foreach循环点击到可视区域最后一项时,鼠标点击就会因找不到而报错。

所以这里需要增加一个“每点击几个目录”就执行一次目录区域的滚动,以加载出后面的目录元素继续点击,你可以根据自己电脑屏幕尺寸去调整控制

2. 获取应用

案例思路如上,鼓励大家自己实操搭建,如果实在觉得搭建麻烦、只想使用的,戳我

3. 开始运行

(1)找到刚获取的应用,点击"运行";

(2)在弹出的对话框中输入飞书知识库链接;

(3)回车或点击"确定" ;

(4)静默等待"打开知识库网页+目录展开+循环点击+写入Excel"完成;

(5)在桌面查看知识库同名的表格;

以上就是本期分享,已经拿到"飞书文档下载机器人"原始指令应用的铁铁也可以稍微改改流程,把"循环Excel相关指令"加进去,那么它就可以持续处理多篇文档啦~下期分享见!

-END-

  • 爱练字的96年ISTJ型互联网人/信息整合怪/工具人/影刀高级认证工程师。
  • 专注分享:RPA&AI自动化场景提效方案、效率软件安利、实用技能。"所有的生产要素都可以被构建,只有认知是壁垒",欢迎関注 @掌心向暖

推荐阅读:

  • 掌心向暖:影刀RPA | Win端没有"上传文件"指令? 多少有点离谱了刀刀
  • 那些拥有上千浏览器书签/收藏夹的电脑用户,是怎么管理书签的?
  • 不会编程的我开发了一款近900行指令的自动化RPA应用,完美解决98%以上复制受限的飞书文档!!

​​​​​​​

Logo

火山引擎开发者社区是火山引擎打造的AI技术生态平台,聚焦Agent与大模型开发,提供豆包系列模型(图像/视频/视觉)、智能分析与会话工具,并配套评测集、动手实验室及行业案例库。社区通过技术沙龙、挑战赛等活动促进开发者成长,新用户可领50万Tokens权益,助力构建智能应用。

更多推荐