用shell 腳本實時獲取白銀價格

最近一直在想做一個小系統,實時獲取白銀價格,如果達到了自己預期的價格,就發到自己的郵箱,免得自己經常去查看白銀價格。

首先在自己的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/ 上紙白銀的價格 靜態網頁的白銀價格更新的比較慢,它們是在瀏覽器加載之後,再自動刷新白銀價格。但是通過這種獲取網頁再解析網頁內容來得到白銀價格的方法,不是很好,數據沒法做到真正的實時。大家有沒有更好的辦法,可以在評論裏面指導一下,本人不甚感激




發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章