首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Apple automator & applescript :在本地不存在的情况下从网页中保存图片

Apple automator & applescript :在本地不存在的情况下从网页中保存图片
EN

Stack Overflow用户
提问于 2014-01-16 03:23:44
回答 1查看 2.9K关注 0票数 0

我目前正在尝试自动化一个任务作为一个应用程序,但有困难的步骤“保存URL”,并需要一个自定义的applescript来取代它。

给你我的项目背景:我买了一个东芝FlashAir SD WIFI卡,用于无线连接的图片拍摄。我想实时下载所有的文件从我的相机与SD无线卡(安装在我的相机)到我的Mac电脑。东芝FlashAir运行自己的网络连接,您可以通过网页浏览器浏览SD内容(没有ftp,没有webdav.,所以只有http连接)。我准备了一个上传到SD的html/Jquery页面,其中包含了FlashAir API,这样当您访问页面http : // flashair时,您就会得到一个页面,该页面中的所有图像链接每秒钟刷新一次。它几乎是实时的,并在浏览器中显示新的镜头图像。

我想下载这些图片在我的电脑上,以便iPhoto或任何其他照片应用程序可以“观看”的目录,就像在系绳模式和进程,如果我需要的话。

在我的计算机端,使用AUTOMATOR

  1. 我“获取特定的URL”> http : // flashair (到达SD卡微型服务器)。
  2. 然后从这个特定的URL和相关URL中“获取所有图像URL”
  3. 然后只下载,只下载我计算机上还没有的图片(这是我缺乏applescript知识的地方)。
  4. 然后循环240分钟。(要观察远程页面并一次又一次只下载新文件。)

所以一切都很完美,但是当我启动自动化工作流时,相同的图片会被一次又一次地保存,文件名后缀-01,-02,.。这意味着我有与循环实例相同数量的重复图片。

如果我只想从远程下载新文件或修改文件到本地文件,自动化程序“下载URL”不允许我精确地下载。

有没有人可以帮助我完成这个" Applescript“步骤,这样我就可以用一个特定的Applescript步骤来替换automator "Download”,这个步骤可以查看文件是否已经存在,如果不是下载每个循环实例的话?

非常感谢你宝贵的答案,我被困在这,一切都是完美无缺的,但重复的文件问题。

达米恩

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2014-07-08 19:17:47

下面是您要查找的代码:

代码语言:javascript
复制
on run {input, parameters}
    set dLocation to POSIX path of (path to downloads folder) & "test/"

    set fileList to {}
    set AppleScript's text item delimiters to {"/"}
    repeat with i from 1 to (count of input)
        # With the delimeter to '/' last item is the filename!
        set urlStr to (get item i of input) as text
        set urlFile to last text item of urlStr

        set savedFile to (dLocation & urlFile) as POSIX file

        log "Saved file is: " & savedFile

        try
            savedFile as alias
            log "File exists: " & savedFile
        on error mMsg
            set end of fileList to urlStr
            log "Adding URL: " & urlStr
        end try
        #       delay 5
    end repeat
    return fileList
end run

上面所做的就是在链接的末尾抓取文件名。它检查文件是否存在,如果不存在,则将链接添加到要下载的链接列表中。然后,它会传递链接列表。

在Applescript操作之后,添加一个Download URLs操作,您应该完成。

编辑:

所以工作流会是这样的:

  1. 定义站点URL
  2. 操作:从网页获取URL链接
  3. 操作:运行applescript (上面的代码)
  4. 操作:下载URL
  5. 行动:暂停(可选)
  6. 行动:循环

请注意,循环操作限制您1000分钟。因此,您有两个选择: 1)添加更多的循环操作,或者2)从具有无限循环的脚本启动工作流.

另一种方法是将整件事情写成一个脚本,并让它连续运行。

EDIT2:

哎呀,再读一遍你的问题。这是240分钟,所以一个循环功能将工作得很好。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/21152784

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档