macos - 从富文本剪贴板内容或 Mac 上的文本选择中提取超链接

标签 macos hyperlink applescript rtf automator

我希望能够获得我在 Mac 上选择的任何格式化文本(格式化文本,如网页或文字处理器文档)中的所有超链接 URL 的列表。

我最好使用 Applescript 或 Automator 从文本中提取此超链接列表(以便我可以使用 Applescript 对这些 URL 执行进一步处理)。

请注意,我说的是从格式化文本中提取的超链接,而不仅仅是从包含纯文本 URL 的文本中提取 URL。

从格式化文本中提取超链接似乎应该是一项简单的编程任务,但我一直在努力寻找在 Applescript 或 Automator 中执行此操作的方法。

Automator 可以设置为接受来自文本选择的富文本输入,或者可以从剪贴板输入富文本,但我找不到任何方法来访问这个富文本作为 Automator 或 Applescript 中的字符串,这样我就可以提取超链接来自富文本数据字符串的 URL。

一旦我以字符串的形式访问富文本数据,提取 URL 就没有问题了。

非常感谢有关我如何解决此问题的任何建议。

最佳答案

Applescript 本身不会解压嵌入的文本,因此您必须以某种方式使用辅助应用程序。您可以使用 do shell script 'textutil' 来执行一些未嵌入的链接:

perl -ne 'print chr foreach unpack("C*",pack("H*",substr($_,11,-3)))' | 
textutil -stdin -stdout -convert html -format rtf

然后,您必须提取 URL。我建议使用 Automator 操作“提取数据”来执行此操作。如果您将整个过程设置为 Automator Workflow,则可以从 Applescript 调用它。或者,如果您将其另存为服务,则可以从服务中运行整个过程。
这是该方法的屏幕截图,应显示您需要的内容:
Workflow Example

如果您有任何疑问,请告诉我。您可以看到此技术的变化 here .

更新:
如果要将其创建为服务,则很难将 Automator 的内置输入强制转换为 RTF。一种有效的方法是忽略输入并执行
keystroke "c" using command down

将所选文本复制到剪贴板,然后从那里使用工作流程。见示例:
Service Workflow Example

关于macos - 从富文本剪贴板内容或 Mac 上的文本选择中提取超链接,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32643011/

相关文章:

macos - 在 os x mavericks (10.9) 中从 applescript 设置桌面照片

java - Mac OS X 10.6 上来自 Java 的 AppleScript?

macos - 如何制作脚本以在 Mac OS X 中显示/隐藏隐藏文件?

android - 如何在 macOS Sierra Android 构建中修复 "sed: illegal option -- r"?

javascript - 防止 Safari 自动滚动到焦点元素(回滚技术在 Safari 12 中停止工作)

macos - 配置: error: C compiler cannot create executables

macos - 我怎样才能从Applescript调用brew

在智能手机上读取的 HTML 链接

java - 通过java上传图片后检索imgur上传链接

html - 如何在 HTML 的新选项卡中打开链接?