当前时区为 UTC + 8 小时



发表新帖 回复这个主题  [ 13 篇帖子 ] 
作者 内容
1 楼 
 文章标题 : [分享]两个查看天气的脚本
帖子发表于 : 2008-04-07 20:12 
头像

注册: 2006-09-10 8:19
帖子: 508
地址: Shanghai,China
系统: Gentoo/Mac OS X
送出感谢: 0 次
接收感谢: 0 次
直接解压运行

运行效果
代码:
./weather1day.sh
please keyin the city in chinese
city:新余
**********************************************************
新余:
今天天气:
温度:20℃~30℃ 上午:多云 下午:多云 今晚:多云
明天天气:
温度:22℃~30℃ 上午:多云 下午:多云 明晚:多云,雷雨
**********************************************************

用下列命令可以得到city code
代码:
wget -O weather265com http://weather.265.com/

iconv -c -f gb2312 -t utf8 weather265com >weather265comutf8

grep "new Array" weather265comutf8 |sed 's/new Array//g'|grep -v var|tail -n 355|sed 's/(\"//g'|sed 's/\")//g'|sed 's/,//g'|sed 's/"//'|sed 's/"/ /g'|cut -b3-






代码:
 ./weather3day.sh
/tmp/weathertmp
请输入要查询天气的城市名:樟树
--20:11:13--  http://php.weather.sina.com.cn/search.php?city=%D5%C1%CA%F7&dpc=1
           => `/tmp/weathertmp/sinaweather'
正在解析主机 php.weather.sina.com.cn... 202.108.33.50
Connecting to php.weather.sina.com.cn|202.108.33.50|:80... 已连接。
已发出 HTTP 请求,正在等待回应... 200 OK
长度:未指定 [text/html]

    [ <=>                                                 ] 17,040        --.--K/s             

20:11:13 (207.92 KB/s) - `/tmp/weathertmp/sinaweather' saved [17040]

########################今日 樟树#######################   
08年04月07日-08日星期一   
天气:多云转中雨 27℃~18℃   
风力:≤3级 至 3-4级   
* 污染指数:3,中。气象条件对空气污染物稀释、扩散和清除无明显影响,易感人群应适当减少室外活动时间。      
* 紫外线指数:2,弱。紫外线强度较弱,建议出门前涂擦SPF在12-15之间、PA+的防晒护肤品。      
* 舒适度指数:1,较舒适。白天天气晴好,您在这种天气条件下,会感觉早晚凉爽、舒适,午后偏热。   
* 体感指数:最低温度15&deg;C,最高温度28&deg;C      
* 防晒指数:2,较弱。紫外线强度较弱,建议涂擦SPF在12-15之间,PA+的防晒护肤品。      
* 中暑指数:0,无。温度不高,其他各项气象条件适宜,中暑机率极低。      
* 穿衣指数:3,暖。建议着长袖衬衫加单裤等春秋过渡装。年老体弱者宜着针织长袖衬衫、马甲和长裤。   
* 空调指数:4,较少开启。您将感到很舒适,一般不需要开启空调。      
* 洗车指数:4,不宜。不宜洗车,未来24小时内有雨,如果在此期间洗车,雨水和路上的泥水可能会再次弄脏您的爱车。      
* 钓鱼指数:1,适宜。白天风和日丽,适宜垂钓,渺渺蓝天,悠悠白云将陪伴你度过愉快的垂钓时光。   
########################明日 樟树#######################   
08年04月08日-09日星期二   
天气:中雨转大雨 18℃~23℃   
风力:≤3级   
* 污染指数:1,优。气象条件非常有利于空气污染物稀释、扩散和清除,可在室外正常活动。      
* 紫外线指数:1,最弱。属弱紫外线辐射天气,无需特别防护。若长期在户外,建议涂擦SPF在8-12之间的防晒护肤品。      
* 舒适度指数:0,舒适。白天不太热也不太冷,风力不大,相信您在这样的天气条件下,应会感到比较清爽和舒适。      
* 体感指数:最低温度16&deg;C,最高温度21&deg;C      
* 防晒指数:1,弱。属弱紫外辐射天气,长期在户外,建议涂擦SPF在8-12之间的防晒护肤品。      
* 中暑指数:0,无。温度不高,其他各项气象条件适宜,中暑机率极低。      
* 穿衣指数:4,舒适。建议着薄型套装或牛仔衫裤等春秋过渡装。年老体弱者宜着套装、夹克衫等。   
* 空调指数:4,较少开启。您将感到很舒适,一般不需要开启空调。      
* 洗车指数:4,不宜。不宜洗车,未来24小时内有雨,如果在此期间洗车,雨水和路上的泥水可能会再次弄脏您的爱车。      
* 钓鱼指数:3,不宜。天气不好,不适合垂钓。   
########################后天 樟树#######################   
08年04月09日-10日星期三   
天气:阵雨 16℃~22℃   
风力:≤3级   
* 污染指数:2,良。气象条件有利于空气污染物稀释、扩散和清除,可在室外正常活动。      
* 紫外线指数:1,最弱。属弱紫外线辐射天气,无需特别防护。若长期在户外,建议涂擦SPF在8-12之间的防晒护肤品。      
* 舒适度指数:0,舒适。白天不太热也不太冷,风力不大,相信您在这样的天气条件下,应会感到比较清爽和舒适。      
* 体感指数:最低温度14&deg;C,最高温度20&deg;C      
* 防晒指数:1,弱。属弱紫外辐射天气,长期在户外,建议涂擦SPF在8-12之间的防晒护肤品。      
* 中暑指数:0,无。温度不高,其他各项气象条件适宜,中暑机率极低。      
* 穿衣指数:4,舒适。建议着薄型套装或牛仔衫裤等春秋过渡装。年老体弱者宜着套装、夹克衫等。   
* 空调指数:4,较少开启。您将感到很舒适,一般不需要开启空调。      
* 洗车指数:4,不宜。不宜洗车,未来24小时内有雨,如果在此期间洗车,雨水和路上的泥水可能会再次弄脏您的爱车。      
* 钓鱼指数:3,不宜。天气不好,不适合垂钓。   




[/code]


附件:
文件注释: 可以查看一天天气
weather1day.tar.gz [3.82 KiB]
被下载 317 次
文件注释: 来自新浪网天气频道
可以查看3天天气

weather3day.tar.gz [993 Bytes]
被下载 82 次


_________________
http://pjq.me


最后由 percy 编辑于 2008-04-07 20:56,总共编辑了 2 次
页首
 用户资料  
 
2 楼 
 文章标题 :
帖子发表于 : 2008-04-07 20:18 
头像

注册: 2006-09-10 8:19
帖子: 508
地址: Shanghai,China
系统: Gentoo/Mac OS X
送出感谢: 0 次
接收感谢: 0 次
代码:
 cat weather1day.sh
#!/bin/bash
#Copyright (c) 2007 bones7456 (bones7456@gmail.com)
#License: GPLv3
echo "please keyin the city in chinese"
echo -n "city:"
read city
city=`grep "$city" ./city.txt |cut -d "-" -f1`
#城市代码,留空可自动检测(自动检测不一定精确),城市代码可在 http://weather.265.com 上查询,是个5位的数字
#city=

if [ -n "$city" ] ;then
   wid=${city}
else
   wget -q -O /tmp/weather.html 'http://weather.265.com/get_weather.php?action=get_city';
   wid=`iconv -f gbk -t utf8 /tmp/weather.html | grep 'wid_265=' | sed -e 's/document\.cookie\ =\ "wid_265=//' | sed -e 's/".*//g'`;
fi
#echo "wid=${wid}"
wget -q -O /tmp/weather.html "http://weather.265.com/weather/${wid}.htm";
str=`iconv -f gbk -t utf8 /tmp/weather.html | grep 'show_weather' | sed -e 's/show_weather("//g'|sed -e 's/),\ "hd\.htm.*//g' | sed -e 's/new Array(//g' | sed -e "s/[\"|\ ]//g" | sed -e "s/,'/ /g" |sed -e "s/'//g"|sed -e "s/index.htm#$wid//g"|sed -e "s/),);//g"|sed -e "s/),//g"|sed -e "s/hz.htm#$wid//g"|sed -e "s/);//g"|sed -e "s/[[xd]b|[xn]|[hd]|[hb]|[hz]|[ga]].htm#$wid//g"`;   
#echo "str=${str}";
AnArray=( ${str} );
time=`date +%k`;
#echo "time=$time"
echo "**********************************************************"
#if [ ${time} -gt 18 ] ; then
   echo ${AnArray[0]}:
        echo "今天天气:" 
        echo 温度:${AnArray[1]} 上午:${AnArray[2]}     下午:${AnArray[3]}      今晚:${AnArray[4]}
        #echo 明天:${AnArray[6]}
        echo "明天天气:"
        echo 温度:${AnArray[5]} 上午:${AnArray[6]}     下午:${AnArray[7]}      明晚:${AnArray[8]}
#elif [ ${time} -gt 12 ] ; then
   #echo ${AnArray[0]}: ${AnArray[1]} 下午:${AnArray[3]};晚上:${AnArray[4]}
#else
   #echo ${AnArray[0]}: ${AnArray[1]} 上午:${AnArray[2]};下午:${AnArray[3]}
#fi
echo "**********************************************************"
rm -f /tmp/weather.html;
exit 0;






代码:
 cat weather3day.sh
#!/bin/bash
#Copyright (c) 2007 percy (pengjianqing@sina.com.cn)
#License: GPLv3
#2008年 04月 07日 星期一 17:43:25 CST
#

mkdir -p   "/tmp/weathertmp"
tmp="/tmp/weathertmp"
echo $tmp


read -p "请输入要查询天气的城市名:" city     

a=`echo "$city" | iconv -c -f utf-8 -t gb2312 | LANG=C sed 's/./&\n/g' | sed -n '$!l' |
while read str;do
str=${str%$}
if [ ${#str} -eq 3 ];then
printf "%%%X" "0${str}"
elif [ "X${str}" == "X" ];then
echo -n '%20'
else
echo -n $str
fi
done
echo`



wget -O "${tmp}/sinaweather"  "http://php.weather.sina.com.cn/search.php?city=${a}&dpc=1"

iconv -c -f gb2312 -t utf8  "${tmp}/sinaweather" >"${tmp}/sina-utf8"


grep $city "${tmp}/sina-utf8" |cut -d ">" -f2|cut -d "<" -f1 |sed 's/^/########################/g'|sed 's/$/#######################/g' |head -n 3 >"${tmp}/DAY"     #今日,明日,后天

year=`date |cut -b3-7`
grep "$year" "${tmp}/sina-utf8" |cut -d ">" -f2|cut -d "<" -f1|sed 's/&nbsp;//g'|sed 's/^/YEAR/g' >"${tmp}/TIME"


grep  污染指数  "${tmp}/sina-utf8"  -n|awk -F "<span>" '{print $2,$3,$4,$5,$6,$7,$8,$9,$10,$11}'|sed 's/<\/span>//g'|sed 's/<\/p>//g' |sed 's/<\/div>//g'>"${tmp}/INDEX"  #得到指数信息


grep "Weather_TP" "${tmp}/sina-utf8" |cut -d ">" -f2|cut -d "<" -f1|sed 's/^/TP/g'   >"${tmp}/TP"  #得到天气信息
grep "Weather_W" "${tmp}/sina-utf8" |cut -d ">" -f2|cut -d "<" -f1|cut -d ";" -f2 |sed 's/^/@/g' >"${tmp}/W"    #得到风力信息

cat "${tmp}/DAY" >"${tmp}/ALL"
cat "${tmp}/TIME" >>"${tmp}/ALL"
cat "${tmp}/TP" >>"${tmp}/ALL"
cat "${tmp}/W" >>"${tmp}/ALL"
cat "${tmp}/INDEX" >>"${tmp}/ALL"




awk '{a[NR]=$0}END{for(i=1;i<=NR/5;i++)printf "%s\t%s\t%s\t%s\t%s\n",a[i],a[i+NR/5],a[i+2*NR/5],a[i+3*NR/5],a[i+4*NR/5]}'  "${tmp}/ALL"  >"${tmp}/SUM1"
cat "${tmp}/SUM1"|sed   's/<p>/\n*/g'|sed 's/污染指数/\n* 污染指数/g'|sed 's/TP/\n天气:/g'|sed 's/@/\n/g'|sed 's/YEAR/\n/g'  >"${tmp}/SUM2"
cat "${tmp}/SUM2"

rm -r "${tmp}"



受ee启发,改成这样,就太简单了
代码:
 cat weatherw3m.sh
#########################################################################
# Author: PengJianqing@sina.com
# Created Time: 2008年04月08日 星期二 12时49分45秒
# File Name: weatherw3m.sh
# Description:
#########################################################################
#!/bin/bash


read -p "input city in pinyin:" city

w3m -dump -no-cookie "http://php.weather.sina.com.cn/search.php?city=${city}&dpc=1"|grep ""


_________________
http://pjq.me


最后由 percy 编辑于 2008-04-08 12:57,总共编辑了 1 次

页首
 用户资料  
 
3 楼 
 文章标题 :
帖子发表于 : 2008-04-07 22:14 
头像

注册: 2005-08-14 21:55
帖子: 58428
地址: 长沙
送出感谢: 4
接收感谢: 272
复杂。
我的简单

☎ cat weather-长沙天气预报
#!/bin/bash

notify-send -u critical -t 5000 -i '/home/exp/媒体/●图标/128软件png/●iPhone/weather.png' '长沙天气预报' "`w3m -dump -no-cookie http://www.15882.com/tianqi/changsha.htm|grep ^20`"

找什么城市哦。罗嗦了不。解析,一个grep就完成了。


_________________
● 鸣学


页首
 用户资料  
 
4 楼 
 文章标题 :
帖子发表于 : 2008-04-07 23:00 

注册: 2006-07-09 12:22
帖子: 1331
地址: 南京
送出感谢: 0 次
接收感谢: 1
纯技术顶帖。


页首
 用户资料  
 
5 楼 
 文章标题 :
帖子发表于 : 2008-04-07 23:27 

注册: 2007-11-27 22:20
帖子: 444
送出感谢: 0 次
接收感谢: 0 次
强人


页首
 用户资料  
 
6 楼 
 文章标题 :
帖子发表于 : 2008-04-07 23:45 

注册: 2008-04-03 0:13
帖子: 1
送出感谢: 0 次
接收感谢: 0 次
值得学习,呵呵~
虽然比较复杂。


页首
 用户资料  
 
7 楼 
 文章标题 :
帖子发表于 : 2008-04-08 12:27 
头像

注册: 2006-09-10 8:19
帖子: 508
地址: Shanghai,China
系统: Gentoo/Mac OS X
送出感谢: 0 次
接收感谢: 0 次
eexpress 写道:
复杂。
我的简单

☎ cat weather-长沙天气预报
#!/bin/bash

notify-send -u critical -t 5000 -i '/home/exp/媒体/●图标/128软件png/●iPhone/weather.png' '长沙天气预报' "`w3m -dump -no-cookie http://www.15882.com/tianqi/changsha.htm|grep ^20`"

找什么城市哦。罗嗦了不。解析,一个grep就完成了。



ee的果然牛,学习了


_________________
http://pjq.me


页首
 用户资料  
 
8 楼 
 文章标题 :
帖子发表于 : 2008-04-08 13:11 
头像

注册: 2006-09-10 8:19
帖子: 508
地址: Shanghai,China
系统: Gentoo/Mac OS X
送出感谢: 0 次
接收感谢: 0 次
percy 写道:
代码:
 cat weather1day.sh
#!/bin/bash
#Copyright (c) 2007 bones7456 (bones7456@gmail.com)
#License: GPLv3
echo "please keyin the city in chinese"
echo -n "city:"
read city
city=`grep "$city" ./city.txt |cut -d "-" -f1`
#城市代码,留空可自动检测(自动检测不一定精确),城市代码可在 http://weather.265.com 上查询,是个5位的数字
#city=

if [ -n "$city" ] ;then
   wid=${city}
else
   wget -q -O /tmp/weather.html 'http://weather.265.com/get_weather.php?action=get_city';
   wid=`iconv -f gbk -t utf8 /tmp/weather.html | grep 'wid_265=' | sed -e 's/document\.cookie\ =\ "wid_265=//' | sed -e 's/".*//g'`;
fi
#echo "wid=${wid}"
wget -q -O /tmp/weather.html "http://weather.265.com/weather/${wid}.htm";
str=`iconv -f gbk -t utf8 /tmp/weather.html | grep 'show_weather' | sed -e 's/show_weather("//g'|sed -e 's/),\ "hd\.htm.*//g' | sed -e 's/new Array(//g' | sed -e "s/["|\ ]//g" | sed -e "s/,'/ /g" |sed -e "s/'//g"|sed -e "s/index.htm#$wid//g"|sed -e "s/),);//g"|sed -e "s/),//g"|sed -e "s/hz.htm#$wid//g"|sed -e "s/);//g"|sed -e "s/[[xd]b|[xn]|[hd]|[hb]|[hz]|[ga]].htm#$wid//g"`;   
#echo "str=${str}";
AnArray=( ${str} );
time=`date +%k`;
#echo "time=$time"
echo "**********************************************************"
#if [ ${time} -gt 18 ] ; then
   echo ${AnArray[0]}:
        echo "今天天气:" 
        echo 温度:${AnArray[1]} 上午:${AnArray[2]}     下午:${AnArray[3]}      今晚:${AnArray[4]}
        #echo 明天:${AnArray[6]}
        echo "明天天气:"
        echo 温度:${AnArray[5]} 上午:${AnArray[6]}     下午:${AnArray[7]}      明晚:${AnArray[8]}
#elif [ ${time} -gt 12 ] ; then
   #echo ${AnArray[0]}: ${AnArray[1]} 下午:${AnArray[3]};晚上:${AnArray[4]}
#else
   #echo ${AnArray[0]}: ${AnArray[1]} 上午:${AnArray[2]};下午:${AnArray[3]}
#fi
echo "**********************************************************"
rm -f /tmp/weather.html;
exit 0;






代码:
 cat weather3day.sh
#!/bin/bash
#Copyright (c) 2007 percy (pengjianqing@sina.com.cn)
#License: GPLv3
#2008年 04月 07日 星期一 17:43:25 CST
#

mkdir -p   "/tmp/weathertmp"
tmp="/tmp/weathertmp"
echo $tmp


read -p "请输入要查询天气的城市名:" city     

a=`echo "$city" | iconv -c -f utf-8 -t gb2312 | LANG=C sed 's/./&\n/g' | sed -n '$!l' |
while read str;do
str=${str%$}
if [ ${#str} -eq 3 ];then
printf "%%%X" "0${str}"
elif [ "X${str}" == "X" ];then
echo -n '%20'
else
echo -n $str
fi
done
echo`



wget -O "${tmp}/sinaweather"  "http://php.weather.sina.com.cn/search.php?city=${a}&dpc=1"

iconv -c -f gb2312 -t utf8  "${tmp}/sinaweather" >"${tmp}/sina-utf8"


grep $city "${tmp}/sina-utf8" |cut -d ">" -f2|cut -d "<" -f1 |sed 's/^/########################/g'|sed 's/$/#######################/g' |head -n 3 >"${tmp}/DAY"     #今日,明日,后天

year=`date |cut -b3-7`
grep "$year" "${tmp}/sina-utf8" |cut -d ">" -f2|cut -d "<" -f1|sed 's/&nbsp;//g'|sed 's/^/YEAR/g' >"${tmp}/TIME"


grep  污染指数  "${tmp}/sina-utf8"  -n|awk -F "<span>" '{print $2,$3,$4,$5,$6,$7,$8,$9,$10,$11}'|sed 's/<\/span>//g'|sed 's/<\/p>//g' |sed 's/<\/div>//g'>"${tmp}/INDEX"  #得到指数信息


grep "Weather_TP" "${tmp}/sina-utf8" |cut -d ">" -f2|cut -d "<" -f1|sed 's/^/TP/g'   >"${tmp}/TP"  #得到天气信息
grep "Weather_W" "${tmp}/sina-utf8" |cut -d ">" -f2|cut -d "<" -f1|cut -d ";" -f2 |sed 's/^/@/g' >"${tmp}/W"    #得到风力信息

cat "${tmp}/DAY" >"${tmp}/ALL"
cat "${tmp}/TIME" >>"${tmp}/ALL"
cat "${tmp}/TP" >>"${tmp}/ALL"
cat "${tmp}/W" >>"${tmp}/ALL"
cat "${tmp}/INDEX" >>"${tmp}/ALL"




awk '{a[NR]=$0}END{for(i=1;i<=NR/5;i++)printf "%s\t%s\t%s\t%s\t%s\n",a[i],a[i+NR/5],a[i+2*NR/5],a[i+3*NR/5],a[i+4*NR/5]}'  "${tmp}/ALL"  >"${tmp}/SUM1"
cat "${tmp}/SUM1"|sed   's/<p>/\n*/g'|sed 's/污染指数/\n* 污染指数/g'|sed 's/TP/\n天气:/g'|sed 's/@/\n/g'|sed 's/YEAR/\n/g'  >"${tmp}/SUM2"
cat "${tmp}/SUM2"

rm -r "${tmp}"



受ee启发,改成这样,就太简单了
代码:
 cat weatherw3m.sh
#########################################################################
# Author: PengJianqing@sina.com
# Created Time: 2008年04月08日 星期二 12时49分45秒
# File Name: weatherw3m.sh
# Description:
#########################################################################
#!/bin/bash


read -p "input city in pinyin:" city

w3m -dump -no-cookie "http://php.weather.sina.com.cn/search.php?city=${city}&dpc=1"|grep ""




代码:
cat weatherw3m2.sh
#########################################################################
# Author: PengJianqing@sina.com
# Created Time: 2008年04月08日 星期二 12时57分45秒
# File Name: weatherw3m2.sh
# Description:
#########################################################################
#!/bin/bash




#read -p "input city in pinyin:" city

notify-send -u critical -t 5000 "`w3m -dump -no-cookie "http://www.15882.com/tianqi/$1.htm"|grep ^20`"



_________________
http://pjq.me


页首
 用户资料  
 
9 楼 
 文章标题 :
帖子发表于 : 2008-04-08 13:14 
头像

注册: 2006-09-10 8:19
帖子: 508
地址: Shanghai,China
系统: Gentoo/Mac OS X
送出感谢: 0 次
接收感谢: 0 次
percy 写道:
代码:
 cat weather1day.sh
#!/bin/bash
#Copyright (c) 2007 bones7456 (bones7456@gmail.com)
#License: GPLv3
echo "please keyin the city in chinese"
echo -n "city:"
read city
city=`grep "$city" ./city.txt |cut -d "-" -f1`
#城市代码,留空可自动检测(自动检测不一定精确),城市代码可在 http://weather.265.com 上查询,是个5位的数字
#city=

if [ -n "$city" ] ;then
   wid=${city}
else
   wget -q -O /tmp/weather.html 'http://weather.265.com/get_weather.php?action=get_city';
   wid=`iconv -f gbk -t utf8 /tmp/weather.html | grep 'wid_265=' | sed -e 's/document\.cookie\ =\ "wid_265=//' | sed -e 's/".*//g'`;
fi
#echo "wid=${wid}"
wget -q -O /tmp/weather.html "http://weather.265.com/weather/${wid}.htm";
str=`iconv -f gbk -t utf8 /tmp/weather.html | grep 'show_weather' | sed -e 's/show_weather("//g'|sed -e 's/),\ "hd\.htm.*//g' | sed -e 's/new Array(//g' | sed -e "s/["|\ ]//g" | sed -e "s/,'/ /g" |sed -e "s/'//g"|sed -e "s/index.htm#$wid//g"|sed -e "s/),);//g"|sed -e "s/),//g"|sed -e "s/hz.htm#$wid//g"|sed -e "s/);//g"|sed -e "s/[[xd]b|[xn]|[hd]|[hb]|[hz]|[ga]].htm#$wid//g"`;   
#echo "str=${str}";
AnArray=( ${str} );
time=`date +%k`;
#echo "time=$time"
echo "**********************************************************"
#if [ ${time} -gt 18 ] ; then
   echo ${AnArray[0]}:
        echo "今天天气:" 
        echo 温度:${AnArray[1]} 上午:${AnArray[2]}     下午:${AnArray[3]}      今晚:${AnArray[4]}
        #echo 明天:${AnArray[6]}
        echo "明天天气:"
        echo 温度:${AnArray[5]} 上午:${AnArray[6]}     下午:${AnArray[7]}      明晚:${AnArray[8]}
#elif [ ${time} -gt 12 ] ; then
   #echo ${AnArray[0]}: ${AnArray[1]} 下午:${AnArray[3]};晚上:${AnArray[4]}
#else
   #echo ${AnArray[0]}: ${AnArray[1]} 上午:${AnArray[2]};下午:${AnArray[3]}
#fi
echo "**********************************************************"
rm -f /tmp/weather.html;
exit 0;






代码:
 cat weather3day.sh
#!/bin/bash
#Copyright (c) 2007 percy (pengjianqing@sina.com.cn)
#License: GPLv3
#2008年 04月 07日 星期一 17:43:25 CST
#

mkdir -p   "/tmp/weathertmp"
tmp="/tmp/weathertmp"
echo $tmp


read -p "请输入要查询天气的城市名:" city     

a=`echo "$city" | iconv -c -f utf-8 -t gb2312 | LANG=C sed 's/./&\n/g' | sed -n '$!l' |
while read str;do
str=${str%$}
if [ ${#str} -eq 3 ];then
printf "%%%X" "0${str}"
elif [ "X${str}" == "X" ];then
echo -n '%20'
else
echo -n $str
fi
done
echo`



wget -O "${tmp}/sinaweather"  "http://php.weather.sina.com.cn/search.php?city=${a}&dpc=1"

iconv -c -f gb2312 -t utf8  "${tmp}/sinaweather" >"${tmp}/sina-utf8"


grep $city "${tmp}/sina-utf8" |cut -d ">" -f2|cut -d "<" -f1 |sed 's/^/########################/g'|sed 's/$/#######################/g' |head -n 3 >"${tmp}/DAY"     #今日,明日,后天

year=`date |cut -b3-7`
grep "$year" "${tmp}/sina-utf8" |cut -d ">" -f2|cut -d "<" -f1|sed 's/&nbsp;//g'|sed 's/^/YEAR/g' >"${tmp}/TIME"


grep  污染指数  "${tmp}/sina-utf8"  -n|awk -F "<span>" '{print $2,$3,$4,$5,$6,$7,$8,$9,$10,$11}'|sed 's/<\/span>//g'|sed 's/<\/p>//g' |sed 's/<\/div>//g'>"${tmp}/INDEX"  #得到指数信息


grep "Weather_TP" "${tmp}/sina-utf8" |cut -d ">" -f2|cut -d "<" -f1|sed 's/^/TP/g'   >"${tmp}/TP"  #得到天气信息
grep "Weather_W" "${tmp}/sina-utf8" |cut -d ">" -f2|cut -d "<" -f1|cut -d ";" -f2 |sed 's/^/@/g' >"${tmp}/W"    #得到风力信息

cat "${tmp}/DAY" >"${tmp}/ALL"
cat "${tmp}/TIME" >>"${tmp}/ALL"
cat "${tmp}/TP" >>"${tmp}/ALL"
cat "${tmp}/W" >>"${tmp}/ALL"
cat "${tmp}/INDEX" >>"${tmp}/ALL"




awk '{a[NR]=$0}END{for(i=1;i<=NR/5;i++)printf "%s\t%s\t%s\t%s\t%s\n",a[i],a[i+NR/5],a[i+2*NR/5],a[i+3*NR/5],a[i+4*NR/5]}'  "${tmp}/ALL"  >"${tmp}/SUM1"
cat "${tmp}/SUM1"|sed   's/<p>/\n*/g'|sed 's/污染指数/\n* 污染指数/g'|sed 's/TP/\n天气:/g'|sed 's/@/\n/g'|sed 's/YEAR/\n/g'  >"${tmp}/SUM2"
cat "${tmp}/SUM2"

rm -r "${tmp}"



受ee启发,改成这样,就太简单了
代码:
 cat weatherw3m.sh
#########################################################################
# Author: PengJianqing@sina.com
# Created Time: 2008年04月08日 星期二 12时49分45秒
# File Name: weatherw3m.sh
# Description:
#########################################################################
#!/bin/bash


read -p "input city in pinyin:" city

w3m -dump -no-cookie "http://php.weather.sina.com.cn/search.php?city=${city}&dpc=1"|grep ""




代码:
cat weatherw3m2.sh
#########################################################################
# Author: PengJianqing@sina.com
# Created Time: 2008年04月08日 星期二 12时57分45秒
# File Name: weatherw3m2.sh
# Description:
#########################################################################
#!/bin/bash




#read -p "input city in pinyin:" city

notify-send -u critical -t 5000 "`w3m -dump -no-cookie "http://www.15882.com/tianqi/$1.htm"|grep ^20`"



_________________
http://pjq.me


页首
 用户资料  
 
10 楼 
 文章标题 : Re: [分享]两个查看天气的脚本
帖子发表于 : 2009-08-06 12:22 
头像

注册: 2006-09-10 8:19
帖子: 508
地址: Shanghai,China
系统: Gentoo/Mac OS X
送出感谢: 0 次
接收感谢: 0 次
要使用notify-send需要安装libnotify-bin
sudo apt-get install libnotify-bin


_________________
http://pjq.me


页首
 用户资料  
 
11 楼 
 文章标题 : Re: [分享]两个查看天气的脚本
帖子发表于 : 2009-08-06 12:33 
头像

注册: 2005-08-14 21:55
帖子: 58428
地址: 长沙
送出感谢: 4
接收感谢: 272
中文和拼音都支持的啊。

代码:
☎ cat w-w天气查询.pl
#!/usr/bin/perl

if($ARGV[0]){
$a=`echo $ARGV[0]|uni2ascii -a J`;
}
else{
$a="长沙";
}
#print "$a\n";
my $r=`w3m -no-cookie -dump http://ipiciq.com/Weather/Default.aspx?q=$a`;
$r=~s/^.*查询]//s;
$r=~s/•.*//s;
$r=~s/(%|°C)/\1 ► /sg;
$r=~s/\n/ /g;
$r=~s/\ +/\ /g;
if($r=~/网络故障/){$r="拼音或中文城市名不正确。原提示:".$r;}
print $r;


_________________
● 鸣学


页首
 用户资料  
 
12 楼 
 文章标题 : Re: [分享]两个查看天气的脚本
帖子发表于 : 2009-08-06 15:20 
头像

注册: 2007-12-25 12:51
帖子: 231
送出感谢: 0 次
接收感谢: 0 次
提供一个方便处理的:
http://wap.weather.com.cn/wap/

输出类似于这样:
广州中心气象台发布暴雨橙色预警
海南省气象台发布暴雨橙色预警
2009年8月6日 星期四
[农历六月十六]
北京
天气:阵雨
气温:29度到23度
风向风力:微风小于3级
紫外线指数:弱
穿衣指数:热
查看详细北京天气预报
48小时: 阴转多云 31℃~24℃ 微风小于3级
72小时: 多云转阴 32℃~25℃ 微风小于3级
国内天气| 国际天气| 旅游景区
气象灾害预警
天气趋势预报| 图说天气
气象新闻| 热点追踪| 气象百科
=气象社区=
互动主题1
互动主题2

首页
# 隐私保护 版权所有
# 中国气象局公共气象服务中心 Copyright © 2000-2008
# 未经授权 严禁非法复制或镜像


页首
 用户资料  
 
13 楼 
 文章标题 : Re: [分享]两个查看天气的脚本
帖子发表于 : 2009-08-10 23:12 

注册: 2009-05-26 10:29
帖子: 7
送出感谢: 0 次
接收感谢: 0 次
顶牛人一把


页首
 用户资料  
 
显示帖子 :  排序  
发表新帖 回复这个主题  [ 13 篇帖子 ] 

当前时区为 UTC + 8 小时


在线用户

正在浏览此版面的用户:没有注册用户 和 1 位游客


不能 在这个版面发表主题
不能 在这个版面回复主题
不能 在这个版面编辑帖子
不能 在这个版面删除帖子
不能 在这个版面提交附件

前往 :  
本站点为公益性站点,用于推广开源自由软件,由 DiaHosting VPSBudgetVM VPS 提供服务。
我们认为:软件应可免费取得,软件工具在各种语言环境下皆可使用,且不会有任何功能上的差异;
人们应有定制和修改软件的自由,且方式不受限制,只要他们自认为合适。

Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group
简体中文语系由 王笑宇 翻译