You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何通过Python与AppleScript获取Notes App中的话题标签?

解决Notes App格式化话题标签的识别问题

原代码只能匹配未格式化的纯文本标签,对黄色的格式化标签返回空数组,核心原因是:Notes的body属性返回的是纯文本内容,而格式化标签属于富文本元素,系统在提取纯文本时没有保留可匹配的标签文本,或者标签的底层存储形式和纯文本不同。

下面提供两种可靠的解决方法:

方法1:匹配富文本内容

Notes的content属性包含笔记完整的HTML富文本结构,格式化标签会以带样式的HTML元素存在,但依然保留标签的文本内容(比如#work)。修改代码用content替代body即可:

from applescript import AppleScript

def get_notes_with_formatted_hashtags(folder, tag):
    # tag需要带#,比如传入"#work"
    script = AppleScript('tell application "Notes" to get id of every note in folder "' + folder + '" whose content contains "' + tag + '"')
    return script.run()

方法2:用原生标签属性筛选(推荐)

如果你的macOS版本在13 Ventura及以上,Notes支持直接通过tags属性管理格式化标签——系统会自动把黄色的格式化标签加入笔记的tags集合。这种方法最准确,不需要处理富文本:

from applescript import AppleScript

def get_notes_by_tag(folder, tag):
    # 这里tag不需要带#,直接传入"work"即可
    script = AppleScript('tell application "Notes" to get id of every note in folder "' + folder + '" whose tags contains "' + tag + '"')
    return script.run()

补充说明

  • 原代码用body contains失效,是因为格式化标签的视觉表现和纯文本一致,但底层存储时带有样式标记,纯文本提取时可能被特殊处理,导致无法匹配。
  • 方法2是官方支持的方式,稳定性和准确性都更高,优先推荐使用。

内容的提问来源于stack exchange,提问作者FoundMason

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.17 17:35:11