解决方案简述如下: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 $today cd $today domain="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 $urlList for i in $urlList do `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" ]; then echo $mp3 `wget $domain$mp3` fi lrc=`sed 's/\("\|><\|href=\)/\n/g' /home/chembo/voa/temp.html| grep \.lrc|awk '{print $1}'|sed 's/img//g'` echo "------------------$lrc" if [ -n "$lrc" ]; then echo $lrc `wget $domain$lrc -P /home/chembo/voa/` fi done scp -r ../$today root@ip4:/var/mobile/voa/
定时任务: crontab -e
58 21 * * * /home/voa/getvoa.sh