我希望能够获得我在Mac上选择的任何格式化文本中的所有超链接网址列表(格式化文本,例如网页或文字处理器文档)。
我最好使用Applescript或Automator从文本中提取这个超链接列表(这样我就可以使用Applescript对这些URL进行进一步处理了。)
请注意,我所说的是从格式化文本中提取超链接,而不只是从包含纯文本网址的文本中提取网址。
从格式化文本中提取这个超链接似乎应该是一个简单的编程任务,但我一直在努力找到一种方法在Applescript或Automator中执行此操作。
Automator可以设置为接受来自文本选择的富文本输入,或者可以从剪贴板输入富文本,但是我无法找到任何方式在Automator或Applescript中以字符串形式访问此富文本,这样我就可以从富文本数据字符串中提取超链接的URL。
一旦我以字符串形式访问富文本数据,提取URL就没有问题。
我们非常感谢您就如何解决这个问题提出任何建议。
答案 0 :(得分:4)
Applescript本身不会解压缩嵌入的文本,因此您必须以这种或那种方式使用帮助应用程序。你可以使用do shell脚本' textutil'做一些链接的unimbedding:
perl -ne 'print chr foreach unpack("C*",pack("H*",substr($_,11,-3)))' |
textutil -stdin -stdout -convert html -format rtf
然后,您必须提取网址。我建议使用Automator动作'提取数据'去做这个。如果您将整个内容设置为Automator工作流程,则可以从Applescript调用它。或者,如果将其另存为服务,则可以从服务中运行整个操作。 这是该方法的屏幕截图,应该显示您需要的内容:
如果您有疑问,请告诉我。您可以看到此技术的变体here。
更新: 如果要将其创建为服务,则很难将Automator的内置输入强制转换为RTF。一种有效的方法是忽略输入并执行
keystroke "c" using command down