需要AppleScript从网站上获取日期

时间:2019-06-06 07:16:59

标签: applescript

我需要一些AppleScript代码,这些代码将转到网站(https://www.time.gov/)并返回日期。我几乎没有编写AppleScript代码的经验,并且在弄清楚如何做到这一点方面经历了非常艰难的时光。

一个小上下文:AppleScript代码将在Excel工作簿的VBA代码内部使用。 AppleScript代码被分配给String变量,然后执行。这是一个简单的示例。

Function FileExistsOnMac(Filestr As String) As Boolean

Dim ScriptToCheckFile As String

ScriptToCheckFile = "tell application " & Chr(34) & "System Events" & Chr(34) & _
" to return (exists disk item " & Chr(34) & Filestr & Chr(34) & ") and class of disk item " & _
    Chr(34) & Filestr & Chr(34) & " = file "

FileExistsOnMac = MacScript(ScriptToCheckFile)

End Function

在我的情况下,我将让Function的类型为String(或日期),并且它将返回AppleScript代码从网站返回的日期。如果有人可以告诉我AppleScript代码是什么,将不胜感激。

1 个答案:

答案 0 :(得分:1)

抓取(即通过读取网站的文本或源代码)不是获取日期和时间信息的理想方法,并且您选择的网站特别糟糕,因为它通过JavaScript不断显示实时时间,更新页面的内容,因此页面的实际源代码实际上并不包含任何可读的日期或时间信息。

从Internet检索时间的更常规方法是从时间服务器进行。 time.gov nist.time.gov中有一个,您可以使用以下bash shell命令请求日期和时间:

cat </dev/tcp/time.nist.gov/13

返回如下内容:

58641 19-06-07 06:19:14 50 0 0 800.5 UTC(NIST) *

第二个和第三个字段是您想要的字段,分别代表日期和时间。我们可以使用awk来进行一些清理:

cat </dev/tcp/time.nist.gov/13 | awk 'length($0)>0 {print 20$2,$3}'

返回:

2019-06-07 06:19:14

由于您明确要求使用AppleScript进行此操作,因此日期和时间将如上所示:

do shell script "cat </dev/tcp/time.nist.gov/13 | awk 'length($0)>0 {print 20$2,$3}'"

,这将仅返回日期:

do shell script "cat </dev/tcp/time.nist.gov/13 | awk 'length($0)>0 {print 20$2}'"