跳到正文
W Winse Blog
automation dev 1 min read

收藏夹搬家记:上万链接导入到 IMA 知识库

最近ima知识库比较热,趁着这股热自己也充实一下。在看到说可以把网页直接加入到知识库,那是不是意味着收藏夹中的网页也可以导入知识库呢?

怀着这折腾的心,开启了这段孽缘。实际是只能导入当前查看的页面,谁叫咱是工程师,就是不服,没有咋就自己燥。看似简单的事情,多了也就不易了。而且收藏夹链接多而且杂,代码最终实现还带有爬虫性质,吃了不少苦头。

先看下效果:


# 尝试接口请求

一开始的想法,是直接调接口来实现。

我先去看了网络请求,但在前台页面的开发者“网络”面板看不出有 ima 的调用。于是我转到扩展的后台页面,果不其然在后台服务里看到了对应的请求。

不过,它的请求数据相当复杂,几乎是把整个网页的内容——包括标题、图片等等——爬取一遍,然后上传到服务器。这一块要是自己提取的话,比较麻烦了。而且整个扩展它是用 React 写的,封装也很严实,外部完全拿不到内部的方法

下面两个图是调试过程中,提取数据、提交请求的位置:

获取当前页面的知识,包括标题、图片以及网页的文本内容

收到网页的内容后,后台线程提交服务器,把网页加入到知识库。


# 使用爬虫模拟人工操作

于是我换了个思路:能不能用类似爬虫的方式,模拟人操作 去点击鼠标,把网页加入知识库?就像手动添加一样。

有想法了,先去问问AI调研一下方法的可行性:有哪些自动化处理的库。它推荐了 Puppeteer 和 Selenium。

最后选了使用 Python 版的 Selenium。前者Puppeteer是 NodeJS 写的,相对简单新潮,但它跑的浏览器不能加载插件,就算用 user-data-dir 参数也没用。Selenium则加载扩展没问题,浏览器能直接带着 ima 插件运行。

但问题还是不少的——Selenium 只能操作页面元素,对于浏览器工具栏上的按钮却无能为力。于是又去研究浏览器的ima扩展,看怎么触发弹出面板,可惜这不属于熟悉的领域,研究一阵瞎改一通没什么效果。

这时候发现一个线索:右键里有“网页加入ima知识库”的菜单。能不能直接点它?实际还不行的,右键菜单也是系统级别的,Selenium 也点不了。

没得办法,只能用桌面自动化工具autogui 来模拟直接操控鼠标,点击工具栏上的插件按钮。为啥到最后才妥协用这种方式,是由于桌面模拟会直接控制鼠标占用机器,运行过程你就用不了电脑了。

折腾不止,生命不息。

在AI加持之下,一个大几百行的 收藏夹自动导入ima知识库 的流程跑通了。具体步骤描述:

  1. 先新建了一个知识库,避免和已有的知识混在一起。

  2. 然后把常用浏览器的收藏夹 导出为 HTML 文件,用Selenium的浏览器打开它。

  3. 接下来就是遍历本地 HTML 页面中所有收藏的链接逐个处理:

  4. 在新标签页打开这个收藏的网址。

  5. 模拟鼠标移动到 ima 插件按钮上,点击,等待面板弹出。

  6. 用爬虫定位到目标知识库的按钮并点击。

  7. 等待“已加入该知识库”的提示后,关闭标签页。

  8. 继续循环处理下一个链接,直到全部处理完毕。

在自动化运行的过程中,盯了一段时间的屏幕。看到一个又一个页面被打开关闭——就如同时间得飞逝。很多收藏的链接来自 2011、2012 年,已经整整13 年过去了。那时刚参加工作,正是拼劲十足、成长迅速的阶段。

也很多页面已经无法访问了:

  • 知乎、CSDN 、简书、iteye等平台的反爬限制很多;

  • 天涯、百度贴吧等内容大面积消失;

  • 个人网站关停的;

  • 公司内部网页无法访问;

  • 视频链接有直接跳转到主页。

访问不了的比例快小一半,由于模拟人工操作太耗时,报错多了可能会自动退出又得重新来,非常浪费时间。所以导入操作之前加个预处理 环节:先检测链接能否访问,404 异常的就直接过滤掉,只有正常的才进入后续流程。

即便如此,单线程依旧太慢,于是我又加上了多线程,同时跑它 30 个线程,“呼呼”地 就快起来了,这速度终于能接受一点了。

小一半的访问报错404 Not found了,能访问的就剩下7千多。但是,全部导入也很要耐心,时间还是比较久的。要问具体是多久呢?那我只能说:很久很久😂

来感受一下自动化的效果吧:

最终:收藏夹1w3的链接,访问过滤掉后还剩7k5,导入成功的4k6。

最后的最后,不建议把 ima 当作主力浏览器去用,浏览器ima知识库插件我也不建议你常开着——它会把你的每一个操作都传回服务器

你说它是检测每个页面是不是已经加入知识库,也对。但,不觉得这很可怕,还很恶心吗?仁者见仁智者见智,但对于现在的我来说,这让我很不爽的,还不能接受!

源代码都放在gitcode了,有兴趣一起研究: https://gitcode.com/winseII/fav\_ima

在 GitHub 上讨论

欢迎通过 GitHub Issue 留言或反馈。每条讨论都会关联到对应文章的源文件路径。

2025-08-16-收藏夹搬家记:上万链接导入到-IMA-知识库.md

Related posts