Geocaching & GPS location based games

Thema anzeigen - Python-Skript für Cachebeschreibungen von GC.com


Alle Zeiten sind UTC + 1 Stunde




Ein neues Thema erstellen Auf das Thema antworten  [ 5 Beiträge ] 


Autor Nachricht
BeitragVerfasst: Do 18. Aug 2011, 15:36 
Offline
Geonewbie

Registriert: Mi 17. Aug 2011, 21:36
Beiträge: 5
Hi,

als nicht Premium Mitglied bei GC.com bekommt man, wie jeder festgestellt hat leider keine Beschreibungen, wenn man sich ein GPX-File auf's Navi schickt. Dieser Umstand hat mich dazu verleitet ein kleines Skript zu schreiben. Die Idee besteht darin, den Inhalt direkt von der Website zu extrahieren und in ein entsprechendes GPX-File zu schreiben.

Den ersten Teil des Skriptes habe ich bereits fertiggestellt, in ihm gebe ich derzeit noch die zu extrahierenden Werte in Form von Variablen vor. Hinterher möchte ich gerne ein Textfile erzeugen, in dem sich die URL der verschiedenen Caches befinden. Das Skript ruft dann jede einzelne Seite auf und holt sich aus dem Quelltext die benötigten Informationen. Dies geschieht bei mir derzeit noch mit einem Hilfsskript. Vielleicht hat ja jemand Lust mitzumachen!?

Code:

#!/usr/bin/env python

import sys
import urllib
sys.path.append(".")
import urllister

authorname = 'Wegi79' #auslesen
ownerid = '1047058'   #auslesen
placedby = 'karl und thea'
lateral = '51.212217'    #auslesen
longitudinal = '7.116783'#auslesen
MinLateral = lateral            #evtl. auslesen
MaxLateral = lateral            #evtl. auslesen
MinLongitudinal = longitudinal  #evtl. auslesen
MaxLongitudinal = longitudinal  #evtl. auslesen
cachenumber = 'GC15E7V'
description_h1 = 'Durchbruch by windagei & Wegi79 , Traditional Cache (2.5/3.5)'
cache_url = 'http://www.geocaching.com/seek/cache_details.aspx?guid=fa2d6a3f-d0d6-4426-a66f-c4c705f61d54'
cachename = 'Durchbruch'
cachetyp = 'Traditional Cache'
cacheid = '675053'
cachesize = 'Regular'
difficulty = '2.5'
terrain = '3.5'
country = 'Germany'
state = 'Nordrhein-Westfalen'
shortdesc = 'Lalelu dat isn test'
longdesc = 'Das ist eine lange Beschreibung ;-)'
encodedhints = 'Mein Tip encodiert hier ...'



gpxfile = open('gpxname.gpx', 'w')
# GPX body
gpxfile.write('<?xml version="1.0" encoding="utf-8"?>\n')
gpxfile.write('<gpx xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema" version="1.0" creator="Groundspeak, Inc. All Rights Reserved. http://www.groundspeak.com" xsi:schemaLocation="http://www.topografix.com/GPX/1/0 http://www.topografix.com/GPX/1/0/gpx.xsd http://www.groundspeak.com/cache/1/0 http://www.groundspeak.com/cache/1/0/cache.xsd" xmlns="http://www.topografix.com/GPX/1/0">\n')
gpxfile.write('  <name>Cache Listing Generated from Geocaching.com</name>\n')
gpxfile.write('  <desc>This is an individual cache generated from Geocaching.com</desc>\n')
gpxfile.write('  <author>Account "'+ authorname +'" From Geocaching.com</author>\n')
gpxfile.write('  <email>contact@geocaching.com</email>\n')
gpxfile.write('  <url>http://www.geocaching.com</url>\n')
gpxfile.write('  <urlname>Geocaching - High Tech Treasure Hunting</urlname>\n')
gpxfile.write('  <time>2011-08-16T14:33:43.4703703Z</time>\n') # hier noch das richtige Zeitformat auslesen ...
gpxfile.write('  <keywords>cache, geocache</keywords>\n') # hier noch die keywoerter auslesen ...
gpxfile.write('  <bounds minlat="' + MinLateral + '" minlon="' + MinLongitudinal + '" maxlat="'+ MaxLateral + '" maxlon="' + MaxLongitudinal + '" />\n')
gpxfile.write('  <wpt lat="' + lateral + '" lon="' + longitudinal + '">\n')
gpxfile.write('    <time>2007-08-26T07:00:00Z</time>\n') # hier noch das richtige Zeitformat der Veroeffentlichung auslesen ...
gpxfile.write('    <name>' + cachenumber + '</name>\n')
gpxfile.write('    <desc>' + description_h1 + '</desc>\n')
gpxfile.write('    <url>' + cache_url + '</url>\n')
gpxfile.write('    <urlname>' + cachename + '</urlname>\n')
gpxfile.write('    <sym>Geocache</sym>\n') # keine Ahnung ...
gpxfile.write('    <type>Geocache|'+ cachetyp + '</type>\n')
gpxfile.write('    <groundspeak:cache id="'+ cacheid + '" available="True" archived="False" xmlns:groundspeak="http://www.groundspeak.com/cache/1/0">\n')
gpxfile.write('      <groundspeak:name>' + cachename + '</groundspeak:name>\n')
gpxfile.write('      <groundspeak:placed_by>' + placedby + '</groundspeak:placed_by>\n')
gpxfile.write('      <groundspeak:owner id="' + ownerid + '">' + authorname + '</groundspeak:owner>\n')
gpxfile.write('      <groundspeak:type>' + cachetyp + '</groundspeak:type>\n')
gpxfile.write('      <groundspeak:container>' + cachesize + '</groundspeak:container>\n')
gpxfile.write('      <groundspeak:difficulty>' + difficulty + '</groundspeak:difficulty>\n')
gpxfile.write('      <groundspeak:terrain>' + terrain + '</groundspeak:terrain>\n')
gpxfile.write('      <groundspeak:country>' + country + '</groundspeak:country>\n')
gpxfile.write('      <groundspeak:state>' + state + '</groundspeak:state>\n')
gpxfile.write('      <groundspeak:short_description html="True">' + shortdesc + '</groundspeak:short_description>\n')
gpxfile.write('      <groundspeak:long_description html="True">' + longdesc + '</groundspeak:long_description>\n')
gpxfile.write('      <groundspeak:encoded_hints>' + encodedhints + '</groundspeak:encoded_hints>\n')
gpxfile.write('    </groundspeak:cache>\n')
gpxfile.write('  </wpt>\n')
gpxfile.write('</gpx>\n')

gpxfile.close()



Nach oben
   
 
BeitragVerfasst: Do 18. Aug 2011, 17:03 
Online
Geoguru

Registriert: So 4. Jan 2009, 20:28
Beiträge: 3724
Wohnort: 72800 Eningen u.A.
Nimm doch einfach den CacheWolf.

_________________
Bild


Nach oben
   
 
BeitragVerfasst: Fr 19. Aug 2011, 11:08 
Offline
Geonewbie

Registriert: Mi 17. Aug 2011, 21:36
Beiträge: 5
Dank' Dir für den Hinweis. CacheWolf überzeugt mich jedoch nicht so richtig.


Nach oben
   
 
BeitragVerfasst: Sa 20. Aug 2011, 23:11 
Online
Geoguru

Registriert: So 4. Jan 2009, 20:28
Beiträge: 3724
Wohnort: 72800 Eningen u.A.
Bauch oder Kopf ?

_________________
Bild


Nach oben
   
 
BeitragVerfasst: Fr 26. Aug 2011, 14:32 
Offline
Geowizard
Benutzeravatar

Registriert: Mi 22. Dez 2010, 17:32
Beiträge: 1272
Wohnort: Celle
Lass ihn doch, wenn er seine regulären Audrücke alle paar Tage anpassen will. ;)

_________________
c:geo-Entwickler


Nach oben
   
 
Beiträge der letzten Zeit anzeigen:  Sortiere nach  
Ein neues Thema erstellen Auf das Thema antworten  [ 5 Beiträge ] 


Alle Zeiten sind UTC + 1 Stunde


Wer ist online?

Mitglieder in diesem Forum: 0 Mitglieder


Du darfst keine neuen Themen in diesem Forum erstellen.
Du darfst keine Antworten zu Themen in diesem Forum erstellen.
Du darfst deine Beiträge in diesem Forum nicht ändern.
Du darfst deine Beiträge in diesem Forum nicht löschen.
Du darfst keine Dateianhänge in diesem Forum erstellen.

Suche nach:
Impressum