Samstag, 5. September 2009

Google Labs: Android Scripting Environment vs Google Docs - ImportXML()

Google hat in den "Labs", das Android Scripting Environment (ASE) zum Download veröffentlicht.
Man kann damit in verschiedenen Scriptsprachen wie z.B. Python, Perl, JRuby, Lua, BeanShell etc., einfache Programme erstellen.

Leider besitze ich kein Androide Smartphone ( G1. HTC Magic) um mir das in der Praxis anzuschauen.

Ich habe mir jedoch mal ein Beispielscript in Python angeschaut.
Passenderweise ein Script um mit der Google Weather API, Wetterdaten abzurufen ;-).

Mit dem Android Smartphone kann man ja auch direkt mit Google Docs arbeiten, deswegen möchte ich den simplen Abruf von Wetterinformation zwischen ASE und meiner Variante - die ich mit Google Docs erstellt habe - zum Vergleich kurz gegenüberstellen.

So sieht das Script aus:

"""Retrieve the weather report for the current location."""

__author__ = 'T.V. Raman '
__copyright__ = 'Copyright (c) 2009, Google Inc.'
__license__ = 'Apache License, Version 2.0'


import string
import urllib
import urllib2
from xml.dom import minidom

WEATHER_URL = 'http://www.google.com/ig/api?weather=%s&hl=%s'


def extract_value(dom, parent, child):
"""Convenience function to dig out weather values."""
return dom.getElementsByTagName(parent)[0].getElementsByTagName(child)[0].getAttribute('data')


def fetch_weather(location, hl=''):
"""Fetches weather report from Google

Args:
location: a zip code (94041); city name, state (weather=Mountain View,CA);...
hl: the language parameter (language code)

Returns:
a dict of weather data.

"""
url = WEATHER_URL % (urllib.quote(location), hl)
handler = urllib2.urlopen(url)
data = handler.read()
dom = minidom.parseString(data)
handler.close()

data = {}
weather_dom = dom.getElementsByTagName('weather')[0]
data['city'] = extract_value(weather_dom, 'forecast_information','city')
data['temperature'] = extract_value(weather_dom, 'current_conditions','temp_f')
data['conditions'] = extract_value(weather_dom, 'current_conditions', 'condition')
dom.unlink()
return data

Das Script ermittelt: den Städtenamen, die aktuelle Temperatur und die Wetterbedingungen.

Und so sieht meine Variante mit Google Docs und der ImportXML-Funktion aus:

den Städtenamen gebe ich in die Spalte A2 ein (muss ich nicht extra nochmals auslesen)

Rückgabe der aktuellen Temperatur:
=ImportXML("http://www.google.de/ig/api?weather="&SUBSTITUTE( TRIM(A2) ; " ";"+");"//xml_api_reply/weather/current_conditions/temp_c/@data")

Rückgabe der aktuellen Wetterbedingungen:
=ImportXML("http://www.google.de/ig/api?weather="&SUBSTITUTE( TRIM(A2) ; " ";"+");"//xml_api_reply/weather/current_conditions/condition/@data")

Mit ASE kann man selbstverständlich wesentlich mehr realisieren.
Aber, mir steht das neue Javascript für Google Docs /Apps in der Standard-Docs-Edition leider nicht zur Verfügung.

Hmmm, welche Variante - gemessen an diesem Beispiel - findet Ihr den besser, einfacher und schneller umzusetzen?

Fast vergessen. Grundsätzlich geht es mit Google Text und Tabellen sogar noch schneller und einfacher:
=GoogleLookup("Berlin";"temperature")

Ist mir leider nicht zuverlässig genug und liefert mir auch nicht gezielt das was ich haben möchte.


NoodleGei.blogspot.com


Ähnliche Beiträge zum Thema/Kategorie:



0 Kommentar(e) zum Beitrag:

Kommentar veröffentlichen

Kommentare bitte fair und im rechtlich erlaubten Rahmen verfassen!
Die Kommentare und ggf. hinterlassene URLs werden von mir überprüft. Kommentare die für blaue Pillchen, Glücksspiele, bestimmte Bilder/Videos, Abzocker-Dienste usw. werben, werden gelöscht.

Kommentare von SEO-Link-Builder sind ebenso unerwünscht!

In den Kommentare können die HTML-Tags für:
kursiv = <i>Testwort</i>
fett = <b>Testwort</b>
Links = <a href="http://www.deineURL.de/">Link Text</a>
genutzt werden. Einfach die o.g. Beispiele kopieren und mit den eigenen Werten ersetzen.

  © Blogger template Columnus by Ourblogtemplates.com 2008

Back to TOP