`
chembo
  • 浏览: 923558 次
  • 性别: Icon_minigender_1
  • 来自: 广州
社区版块
存档分类
最新评论

手机自动下载当天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 $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




分享到:
评论
1 楼 hikaru71 2012-02-25  
,好,果然系技术宅~

相关推荐

Global site tag (gtag.js) - Google Analytics