Entfernungstabelle
Verfasst: Sonntag 2. November 2008, 15:15
Hallo,
Ich bräuchte hier mal etwas Hilfe bitte.
Ein Bekannter hat mir folgenden Code geschrieben, damit werden automatisch Abfragen bei Google Maps gestartet und die Entfernung in min und km ausgegeben.
Das Problem ist jetzt, dass Postleitzahlen leider IRGENDWO in der Pampa verortet werden (ich nehme an im Schwerpunkt des durch diese PLZ abgedeckten Gebiets) und daher teilweise unsinnige Ergebnisse herauskommen.
Meine Frage: kann der Code umgeschrieben werden, sodass statt der reinen PLZ immer "PLZ Ort" abgefragt wird? also z.B. "80331 München"? Bei dem jetzigen Code kommt dabei ein SyntaxError: invalid syntax.
Ich kenne mich leider selbst mit python 0,0 aus ...
Danke für Eure Hilfe!
Chris
Ich bräuchte hier mal etwas Hilfe bitte.
Ein Bekannter hat mir folgenden Code geschrieben, damit werden automatisch Abfragen bei Google Maps gestartet und die Entfernung in min und km ausgegeben.
Code: Alles auswählen
import urllib
import re
import time
km = re.compile(r"<b>(\d*,?.?\d*) km</b>")
minuten = re.compile(r"about <b>(\d*) mins?</b>")
stunden_minuten = re.compile(r"about <b>(\d*) hours? (\d*) mins?</b>")
PLZ_A = [70191]
PLZ_B = [70191, 67663]
res = []
for plz_a in PLZ_A:
for plz_b in PLZ_B:
print "Bestimme Entfernung von %s nach %s ..." % (plz_a, plz_b)
data = urllib.urlopen("http://maps.google.com/maps?q=from:%s+Germany+to:%s+Germany" % (plz_a, plz_b)).read()
entfernung = float(km.search(data).group(1).replace(',','.'))
stud_min = stunden_minuten.search(data)
if stud_min:
zeit = 60 * int(stud_min.group(1)) + int(stud_min.group(2))
else:
stud_min = minuten.search(data)
if stud_min:
zeit = int(stud_min.group(1))
else:
zeit = 0
print " ist:", entfernung
res += [(plz_a, plz_b, entfernung, zeit)]
print
print "Pythonformat:"
print res
print
print "Fuer TK: (auch in Datei ausgabe.txt)"
output = file('ausgabe.txt', 'w')
print >>output, '"PLZ A";"PLZ B";"Entfernung";"Fahrzeit in min"'
print >>output, '\n'.join(["%s;%s;%s;%s" % x for x in res])
output.close()
print '\n'.join(["%s;%s;%s;%s" % x for x in res])
print
print "Warte 30 sec"
#time.sleep(30)
Meine Frage: kann der Code umgeschrieben werden, sodass statt der reinen PLZ immer "PLZ Ort" abgefragt wird? also z.B. "80331 München"? Bei dem jetzigen Code kommt dabei ein SyntaxError: invalid syntax.
Ich kenne mich leider selbst mit python 0,0 aus ...
Danke für Eure Hilfe!
Chris