On 22/12/2011 18:13, Cranky Frankie wrote:
I got it to work:

Use this for the import - import urllib.request

the use this: dom = minidom.parse(urllib.request.urlopen(url))

Here's the code that works in 3.2:

from pprint import pprint
import urllib.request
from xml.dom import minidom

WEATHER_URL = 'http://xml.weather.yahoo.com/forecastrss?p=%s'
WEATHER_NS = 'http://xml.weather.yahoo.com/ns/rss/1.0'

def weather_for_zip(zip_code):
     url = WEATHER_URL % zip_code
     dom = minidom.parse(urllib.request.urlopen(url))
     forecasts = []
     for node in dom.getElementsByTagNameNS(WEATHER_NS, 'forecast'):
         forecasts.append({
             'date': node.getAttribute('date'),
             'low': node.getAttribute('low'),
             'high': node.getAttribute('high'),
             'condition': node.getAttribute('text')
         })
     ycondition = dom.getElementsByTagNameNS(WEATHER_NS, 'condition')[0]
     return {
         'current_condition': ycondition.getAttribute('text'),
         'current_temp': ycondition.getAttribute('temp'),
         'forecasts': forecasts,
         'title': dom.getElementsByTagName('title')[0].firstChild.data
     }

pprint(weather_for_zip(12303))


Hello,

I tried it and it works fine (Python 3.2, Windows XP (5.1.2600) )

Here's what I got:

 {'current_condition': 'Light Rain',
 'current_temp': '37',
 'forecasts': [{'condition': 'AM Rain/Snow',
                'date': '23 Dec 2011',
                'high': '39',
                'low': '16'},
               {'condition': 'Partly Cloudy',
                'date': '24 Dec 2011',
                'high': '31',
                'low': '20'}],
 'title': 'Yahoo! Weather - Schenectady, NY'}


I'll probably tinker with it to make it show the weather here in Algiers (Algeria, North Africa).

Thanks,


--
~Jugurtha Hadjar,

_______________________________________________
Tutor maillist  -  Tutor@python.org
To unsubscribe or change subscription options:
http://mail.python.org/mailman/listinfo/tutor

Reply via email to