Safari无内置查重功能,需导出HTML书签后用文本搜索或Python脚本识别重复URL,再手动清理并重建唯一性结构。

在Safari浏览器中手动逐个检查书签是否重复既耗时又容易遗漏,尤其当书签栏和书签文件夹内已有数百条记录时,必须借助系统原生功能与合理操作路径实现批量识别与清理。
导出书签为HTML文件以便外部处理
点击Safari菜单栏「文件」→「导出书签」,选择保存位置并确认导出。该操作生成标准HTML格式的书签文件,结构清晰、可被文本工具或脚本解析。【导出前请确保所有设备已同步完成,否则本地未同步的新增书签会丢失】
这一步不可跳过——Safari不提供内置的“查找重复书签”功能,必须依赖导出后的文件进行比对。
用文本编辑器快速定位重复URL
用Mac自带的「文本编辑」或「VS Code」打开刚导出的书marks.html文件,按Command+F唤出搜索框。
输入一个高频域名(例如“zhihu.com”或“github.com”),回车后查看匹配项数量。若同一URL在不同文件夹下出现多次,说明存在重复收藏。
注意:仅靠域名判断不够精准,需进一步核对完整href链接值,因为带UTM参数或路径不同的URL实际指向同一页面,也应视为重复。
使用Python脚本自动检测并标记重复项
方法一:运行轻量脚本(无需安装额外库)
打开终端,执行以下命令创建临时脚本:
echo "import re,sys; t=open(sys.argv[1]).read(); urls=re.findall('HREF=\"([^\"]+)\"', t); [print(u) for u in set([u for u in urls if urls.count(u)>1])]" > find_dup.py
然后运行:python3 find_dup.py bookmarks.html
该脚本会输出所有重复出现的完整URL,每行一条。复制任一结果,在书marks.html中全局搜索,即可定位所有对应
方法二:直接在Safari中删除(需谨慎)
回到Safari,打开「书签」→「编辑书签」,逐个展开含重复URL的文件夹,在列表中右键目标书签→「移除」。不要勾选“同时从iCloud删除”,除非你确定其他设备也不需要它。
重建干净的书签结构
第一步:新建一个名为“待整理”的空书签文件夹;
第二步:将原书签栏中确认无重复的常用书签拖入该文件夹;
第三步:把刚才脚本输出的全部重复URL,逐一在Safari地址栏粘贴访问,只保留最新一次收藏的版本,其余全部删除;
第四步:确认完毕后,将“待整理”文件夹重命名为“主书签”,拖至书签栏最左侧固定位置。
这一步完成后,书签栏恢复简洁,所有文件夹层级中的URL唯一性得到保障。


















