【树莓派教程】——获取Yahoo气象预报

2016-01-082.4万
AI 快速预览详细 收起
本教程介绍了如何使用树莓派和Python代码从Yahoo API获取气象预报数据。通过提供的Python代码,用户可以输入城市ID(如上海2151849)来获取当前天气和未来几天的天气预报。温度单位默认为华氏度,可以通过修改URL参数u=c将其改为摄氏度。此方法适用于初学者和需要实时天气数据的项目。


1.获取天气
vi weather.py

  1. #!/usr/bin/python
  2. # coding: utf-8
  3. #create by Renqiang  ,renqiang@xiaokr.cc
  4. import sys,getopt
  5. import urllib
  6. from xml.dom import minidom
  7. WEATHER_URL = 'http://xml.weather.yahoo.com/forecastrss?w=%s'
  8. WEATHER_NS =  'http://xml.weather.yahoo.com/ns/rss/1.0'
  9. #define Yahoo WebService Function
  10. def weather_for_zip(zip_code):
  11.         url = WEATHER_URL % zip_code
  12.          #download data by urllib and then use minidom transport text to XML
  13.         dom = minidom.parse(urllib.urlopen(url))
  14.         forecasts = []
  15.           #find the keywords from weather forecast in XML by  recycling
  16.         for node in dom.getElementsByTagNameNS(WEATHER_NS,'forecast'):
  17.                forecasts.append({
  18.                            'date':node.getAttribute('date'),
  19.                            'low':node.getAttribute('low'),
  20.                            'high':node.getAttribute('high'),
  21.                            'condition':node.getAttribute('text')
  22.                            })
  23.         #find the keywords of now weather condition in XML                                   
  24.         ycondition = dom.getElementsByTagNameNS(WEATHER_NS,'condition')[0]
  25.         return{
  26.                'current_condition':ycondition.getAttribute('text'),
  27.                'current_temp':ycondition.getAttribute('temp'),
  28.                'forecasts':forecasts,
  29.                'title':dom.getElementsByTagName('title')[0].firstChild.data
  30.               }
  31. #city ID  
  32. #Shanghai 2151849 Beijing 2151330
  33. zipcode = 2151849
  34. #        if(len(sys.argv)>0):
  35. #          zipcode = sys.argv[1]
  36. print weather_for_zip(zipcode)
复制代码
温度单位默认为华摄氏度WEATHER_URL = 'http://xml.weather.yahoo.com/forecastrss?w=%s&u=c'
加入u=c单位变为摄氏度
【树莓派教程】——获取Yahoo气象预报图1输出不够优雅,大神可以帮忙改一下~~~~~~~~O(∩_∩)O~~


创作许可协议

本项目采用 None(不开放任何权利,保留所有权利) 进行许可。

评论(10)
丄帝De咗臂
丄帝De咗臂
天气预报
visionsl
visionsl
这个不错, 拿来用用
qq815076543322
qq815076543322
好啊
丄帝De咗臂
丄帝De咗臂
都是代码。。。。。。。。。。。。。
凌风清羽
凌风清羽
作者
回复丄帝De咗臂
评论内容
凌风清羽
凌风清羽
作者
哈哈
~~~下次要直接发答案,哈哈~~~~~~~~~
qq815076543322
qq815076543322
原来是考完试了啊 哈哈 不错嘛
dsweiliang
dsweiliang
现在流行占坑慢慢填
凌风清羽
凌风清羽
作者
Bingo~~~~~~~~~~~
hnyzcj
hnyzcj
估计是占坑的,最近流行这个,恩,就是这样。林海占坑的世界你不懂。哈哈
凌风清羽
凌风清羽
作者
回复hnyzcj
考完试了,要多占几个坑哈哈O(∩_∩)O哈哈~
凌风清羽
凌风清羽
作者
回复hnyzcj
学会了占坑
qq815076543322
qq815076543322
这是没写完就睡去吗
孙毅
孙毅回复qq815076543322
我忽然有兴趣了,今年上半年,咱俩合计一下如何啊?
qq815076543322
qq815076543322回复孙毅
我擦了 我考完都被气疯了 讲的一模一样的 他们竟然给我做错了
共15条回复,已加载2条,点击查看更多共15条回复,已加载全部
- 没有更多了 -