手机自动下载当天voa听力
有这么个需求,由于上班较长时间,我希望利用这段时间做做听力什么的。那么为了下载听力材料,我需要每天去http://www.51voa.com/下载当天的更新。这是个重复的工作,完全可以利用手机或者电脑自动化。
解决方案简述如下:iphone4上写个脚本,去wget当天的更新;然后配上cron的定时任务便可以了。但谷歌了很久,都没找到iphone4的cron,或者说是休眠就会失效,所以即便能自动下载,但还需要人工去启动,这自然达不到自动化的效果。
所以新的解决方案如下:由于笔记本cygwin能启动cron,所以让笔记本每晚9点去下载,完了再scp到iphone4上去。这里有个假设:我每晚9点都会在家并开启wifi,笔记本开着,手机开着wifi和sshd。像我这样的宅男,这基本是个定律,没什么意外的话;而手机基本24小时开着wifi连接,只要路由开了自动会连上,而sshd服务可以在cydia上轻易安装启动。再在路由上绑定iphone4的mac地址,好让笔记本的在下载完后,scp能根据预设的IP连到iphone4上去。
脚本思路:下载voa首页,根据当天日期找出当天的voa更新,得到一个url list,然后for循环,逐个wget, 在得到的新页面内容,寻找mp3结尾的url,和lrc结尾的url,再进行wget.最后完成了scp到iphone4上去。
如下是脚本:
cd /home/chembo/voa/`wget -O voa.html http://www.51voa.com/`today=`date +%m-%d|sed 's/^0\+//'|sed 's/-0/-/'`mkdir $todaycd $todaydomain="http://www.51voa.com"urlList=`sed 's/"/\n/g' /home/chembo/voa/voa.html | grep -C 4 $today |grep "\(VOA_Special_English\)\|\(VOA_Standard_English/\)\|\(Voa_English_Learning\)/.*html"`echo $urlListfor i in $urlListdo `wget -O temp.html ${domain}${i}`mp3=`sed 's/"/\n/g' /home/chembo/voa/temp.html | grep "/path.asp?url"`echo "------------------$mp3"if [ -n "$mp3" ]; thenecho $mp3`wget $domain$mp3`filrc=`sed 's/\("\|><\|href=\)/\n/g' /home/chembo/voa/temp.html| grep \.lrc|awk '{print $1}'|sed 's/img//g'`echo "------------------$lrc"if [ -n "$lrc" ]; thenecho $lrc`wget $domain$lrc -P /home/chembo/voa/`fidonescp -r ../$today root@ip4:/var/mobile/voa/
58 21 * * * /home/voa/getvoa.sh