Mac使用 automator 自动批量处理网站下载

automator是个很方便的工具,当有重复批量处理事情的时候,可以帮上大忙。

使用chrome做网站特定内容下载,使用bulk media downloader插件,可以针对需要的内容,如mp3做批量下载,尤其对于很多在线播放网站,自动找到mp3的下载地址,直接批量下载。

这两个工具结合起来,自动化手工爬一个系列mp3,一个歌单什么的,简直不要太好用。

准备:

Chrome和插件

https://chrome.google.com/webstore/detail/bulk-media-downloader/ehfdcgbfcboceiclmjaofdannmjdeaoi?hl=en安装略

 这个插件的用法是,安装好后,打开这个插件,会新开一个chrome窗口,当有需要的媒体内容出现在网页,会自动将内容链接过滤显示出来,之后在直接批量下载即可。

 如图,左边是音乐播放,右边会自动将需要的内容和下载地址选中,下面有Download按钮,直接下载即可。

automator使用

这个工具就很有意思了

首先,需要一个循环,如果需要下载的url地址是数字组成的,就更方便了,

例如,有个200集的多媒体连载,每一集有个不同的地址,例如

http://xbd.wangluoyuming.com/gushi-1.html  

……

http://xbd.wangluoyuming.com/gushi-200.html  (这个地址是瞎编的  网络域名)

需要用automator循环组成这个系列地址,需要一个变量,从1到200,每次加一,配合地址的固定部分,生成一个url,然后把这个地址发送给chrome让chrome打开,打开后,bulk media downloader插件会自动选出需要的下载文件地址,每一个url选择一个,在bulk里面形成200个地址列表,最后在bulk里面点击下载即可。

开始在automator里面新建一个workflow

 

automator的变量

如图下方右边有两个显示选项,一个是日志log,另一个是变量variable,可以直接鼠标右键,新建变量,起名并设定值为1

 OK,变量除了自定义之外,automator提供了很多可以直接使用的,比如时间、版本号之类的很多。

变量的用法是,Get和Set,这两个没有分类,直接左边在Library里面找到,拖拽的右边窗口,会自动列出之前所定义变量的名字 

automator的循环

 

左边Library库里面的Utilities分类里面的Loop,直接鼠标拖拽到右边窗口即可。

Loop的功能是,从第一个动作,顺序到了loop后,再从第一个重新开始。 

Loop的执行默认是,需要询问是否继续,现在直接执行时,每次循环到Loop,会提示是否要继续

 现在是个空循环,执行的内容是

获取我的变量的值

设置我的变量的值

循环(提示继续或不继续)

组装序列地址automator让chrome打开url

这部分就需要用applescript来做了,automator也支持javascript

 拖一个 执行AppleScript放在获取变量值的后面,即插入到第二步

input是上一个动作的输出,在Chrome的所有窗口的所有tab页面寻找包含“http://xbd.wangluoyuming.com/gushi-”字符串的tab,找到了就把该tab 设置为active,并用变量组装序列url让chrome打开,如果所有窗口都找不到,就在chrome新建一个window,并打开。从而bulk会自动获取所有需要的资源地址列表。

代码如下,细节解释略


on run {input, parameter}
	set num to input as number
	-- 设置常量
	set TARGETURL to "http://xbd.wangluoyuming.com/gushi-"
	
	
	set startNoTxt to num as string
	
	set tab_URL to TARGETURL & startNoTxt & ".html"
	set found to false
	set foundwindowidx to 1
	tell application "Google Chrome"
		repeat with w in windows
			set i to 1
			repeat with t in tabs of w
				if URL of t contains TARGETURL then
					set active tab index of w to i -- 将活动tab设置为找到的i
					set foundwindowidx to index of w

					set found to true
					exit repeat
				end if
				set i to i + 1
			end repeat
			if found then exit repeat
		end repeat
		
		
		if found then
			set URL of active tab of window foundwindowidx to tab_URL
		else
			make new window
			activate
			open location tab_URL
		end if
	end tell
	
	return (num + 1) as string
end run

注意 return语句,就是本动作输出给下一个动作的input,后面是Set Value,正好把这个已经加1的值赋值给我的变量。

Done!

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
该项目是为了让手机应用的一些常规测试可以自动化起来,让测试人员摆脱那些枯燥的重复性工作。 基于OpenCV的图像识别技术,有点类似于SikuliX(这东西挺好用的,只是没说要支持手机端)这个项目诞生在网易游戏频繁的测试中,所以这个项目主要是为了支持游戏的测试。atx是AutomatorX的简称,目前是作为一个python库使用,安装方法也超级简单pip install atx安装完这个之后,再安装python-opencv就完成了最终的安装。有了它,平常枯燥的刷副本,主线任务,就不再这么头疼了。特征完全的黑盒测试框架,无需知道项目代码,非侵入式可是很好的支持安卓手机的测试,包括安卓模拟器支持Windows应用的测试对于游戏测试,可以使用图像缩放的方法适应不同分辨率的手机历史起源以前写过一个项目 https://github.com/netease/airtest,atx是airtest的重构版本,。 因为原版代码冗余太严重,维护成本太高,所以就新开了一个新的项目。新版有哪些新的功能呢?与原版主要变化简化安装方式,只需要安装opencv以及通过pip安装atx 无其他依赖支持原生UI元素的查找和点击截图方式重原有缓慢的adb截图,改成默认uiautomator截图,可选minicap截图(1080x1920手机截图平均耗时0.2s)优化图像的自动缩放算法,以便同样的脚本可以适应不同的机器支持Watch用法,可持续监控界面,当某个元素出现时执行特定操作截图客户端从网页服务器变成了python-Tkinter写的客户端 使用python -matx gui启动支持dir(dev) 查看元素已有的方法(-_-! 之前代码写的不好,并不支持)更稳定的依赖库控制,与travis持续集成,可在代码更新后自动发布到pypi移除性能监控功能,暂时移除iOS支持图像匹配默认使用模版匹配,将SIFT匹配改为可选

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值