现有需求:有了黑莓手机,装了smartmail,可以收邮件,于是想把每天的天气数据用vps自动发送到邮箱里,这样手机自动去收取,就可以了解最近的天气。
第一步获取天气数据:最近打算把所有google能办到的事都让google来办,所以现在用的是google的天气数据,http://www.google.com/ig/api?weather=CHANGZHOU&hl=zh-cn
API有了,是xml,接下来就是如何把xml的数据搞下来
于是找到了xmlstarlet – command line XML toolkit 分析xml的命令行工具
#apt-get install xmlstarlet
这里用curl得到一个xml文件,可以用xml处理调用里面的数据,但不能得到中文,这让我要想其他办法,后来网上找到了资料,后面加 &ie=utf-8&oe=utf-8,如下
curl -g “http://www.google.com/ig/api?weather=changzhou&hl=zh-cn&ie=utf-8&oe=utf-8”
参考:http://xmlstar.sourceforge.net/doc/UG/xmlstarlet-ug.pdf 一步步学习,这要花上几个小时。
学了半天,处理后的xml数据,中文还是出不来。又回到先用英文来搞,专心把pdf里的命令实践。得到的xml
用如下命令查得结构
xmlstarlet el -v weather.xml
从手册上得到的知识处理
xmlstarlet sel -T -t -m /xml_api_reply/weather/current_conditions/condition -v "@data" weather.xml
这时显示Mostly Cloudy,至此可以得到需要的当日的数据了,只是很烦,而且没有中文。
Leave a Reply