最近一直在想做一個小系統,實時獲取白銀價格,如果達到了自己預期的價格,就發到自己的郵箱,免得自己經常去查看白銀價格。
首先在自己的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" [email protected]
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/ 上紙白銀的價格 靜態網頁的白銀價格更新的比較慢,它們是在瀏覽器加載之後,再自動刷新白銀價格。但是通過這種獲取網頁再解析網頁內容來得到白銀價格的方法,不是很好,數據沒法做到真正的實時。大家有沒有更好的辦法,可以在評論裏面指導一下,本人不甚感激