最近一直在想做一个小系统,实时获取白银价格,如果达到了自己预期的价格,就发到自己的邮箱,免得自己经常去查看白银价格。
首先在自己的ubuntu 中启用邮件发送功能
具体操作可见如下链接
http://www.cnblogs.com/xiazh/archive/2011/04/15/2016966.html
中间有一些不是很清楚的地方,主要是配置那些文件是容易出问题,让不熟悉ubuntu的人不是很清楚,可以按照以下方法来
~/.muttrc 中~是ubuntu 的配置目录, .muttrc 是配置文件名
具体配置步骤如下
cd ~ vim .muttrc
.msmtprc .msmtp.log 都可以像这样来进行配置
send.sh
#!/bin/bash i=1 while(($i<100)) do rm index.html wget -b http://zhibaiyin.zhongguobaiyin.com/ >> mylog sleep 5 #cat index.html a=$(cat index.html) #echo "$a" b=$(grep JO_42761q59 index.html) c=$(grep JO_42761q73 index.html) echo $b echo $c k=${c#*>} k=${k%%<*} tmp_time=${b#*>} tmp_time=${tmp_time%%<*} tmp_time=$(date +%Y-%m-%d-%H:%M:%S) echo $tmp_time #k=2 t=3.7 #echo "1.7>1.6" | bc tmp=$(echo "$k<$t" | bc) #echo $num1 echo $tmp t=1 if [ $tmp -eq $t ] then tt=" " content=$tmp_time$tt$k echo $content | mutt -s "silver price" 1144499969@qq.com echo $tmp echo $content fi echo $k sleep 5m done
从这个网址 http://zhibaiyin.zhongguobaiyin.com/ 得到白银价格
用一个死循环 ,5分钟获取一次网页,如果达到了自己想要的价格 就发邮件到指定的邮箱
再写一个启动shell 在后台运行 并输出日志
#!/bin/bash nohup ./send.sh >> mylog &
因为在获取网页时会产生比较多的日志文件,可以写个 shell 脚本来进行循环删除
#!/bin/bash dr=$(pwd) echo $dr Str=$(ls wget-log.*) for x in $Str; do echo $x rm $x done
至此 这个小系统就差不多了 ,不得不感叹shell 脚本功能的强大。但是在这个网站 http://zhibaiyin.zhongguobaiyin.com/ 上纸白银的价格 静态网页的白银价格更新的比较慢,它们是在浏览器加载之后,再自动刷新白银价格。但是通过这种获取网页再解析网页内容来得到白银价格的方法,不是很好,数据没法做到真正的实时。大家有没有更好的办法,可以在评论里面指导一下,本人不甚感激