我希望能够获得我在 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 调用它。或者,如果您将其另存为服务,则可以从服务中运行整个过程。
这是该方法的屏幕截图,应显示您需要的内容:
如果您有任何疑问,请告诉我。您可以看到此技术的变化 here .
更新:
如果要将其创建为服务,则很难将 Automator 的内置输入强制转换为 RTF。一种有效的方法是忽略输入并执行
keystroke "c" using command down
将所选文本复制到剪贴板,然后从那里使用工作流程。见示例:
关于macos - 从富文本剪贴板内容或 Mac 上的文本选择中提取超链接,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32643011/