Daten für eine Homepage optimieren und verarbeiten?!

A

Andrej

Routinier
Hi
Ihr wisst ja sicher es gibt viele offene Daten die von der Regierung kostenlos zur Verfügung gestellt werden darunter auch "echt zeit daten". Zb WFS GetCapabilities, WMS Geoserver GetCapabilities,... mit den ich nix anfangen kann.
Dann werden manche Daten nur (!!!) als .csv angeboten.
Das alles muss verarbeitet werden. Hat jemand eine idee wie man das macht?
Also runterladen, verarbeiten, auf meinen Webserver in die MySQL Datenbank speichern.
 
Das dürfte auf die jeweilige Quelle und die dort vorhandenen Formate ankommen und natürlich auch auf das, was Du damit tun willst.

Eine Lösung für alles gibt es dabei nicht. Sollte jemandem, der sich damit auseinandersetzt aber auch klar sein.

Meist gibt's übrigens eine Doku zu API + Dateiformat.
 
zb. https://apps.tirol.gv.at/hydro/ogd/OGD_LT.csv
Bei den File zb. da muss man zuerst jeden Dort einzeln speichern.
Dann muss man zum aktuellen Datum/ Uhrzeit gehen weil alte Daten sind wurscht.
Und man muss es auf Plausibilität checken. Zb steht da drinnen "-777" was ausserhalb der Tolleranz ist da müsste man einen vorherigen Wert nehmen
Und so weiter das ist eines von vielen Files und Formate.
 
Na, dann pack den Editor aus ein programmier Dir den entsprechenden Parser für das jeweilige Datenformat.

Ich erstehe aktuell den Sinn des Threads nicht.
 
Weil ich genau 0 verstehe und keine idee habe was das ist und wie das geht.
 
Ehrliche Meinung: Dann lass es.

Entweder Du beschäftigst dich damit - also Programmieren lernen, Datenmodell erstellen und so weiter oder Du lässt es jemanden für Dich entwickeln. Oder Du nutzt einen Service, der es für Dich bereits gemacht hat. Kann ja sein, daß es das schon gibt. Musst Du recherchieren.
 
Ja kann mir hier jemand helfen? Ich baue werde die Homepage und alles.
 
Hi,

so wie ich das sehe, ist die Beispieldatei eine ganz simple CSV Datei, in der jeweils ein Eintrag in einer Zeile steht und die einzelnen Werte von einander durch ; getrennt sind. Das sollte man mit einem relativ einfachen Script parsen können. Hier ein Beispiel in Python3:
Code:
#!/usr/bin/env python3

import sys
import urllib.request

def fetch_data(url):
    """Fetch the data from a given url and make a dict out of it."""
    ret = dict()
    local_data_file, headers = urllib.request.urlretrieve(url)
    with open(local_data_file, "r", encoding = "latin_1") as spr:
        while 1:
            line = spr.readline().strip()
            if not line:
                break
            # data is a list (called "array" in some programming languages)
            # that contains every single value from this line.
            data = line.split(";")
            # The first value is the station name.
            stat_name = data[0]
            # We create a tuple from the rest of the values.
            entry = tuple(data[1:])
            # We return a dict (called "map" in some programming languages)
            # that associates a list of the value tuples with each station name.
            if stat_name in ret:
                ret[stat_name].append(entry)
            else:
                ret[stat_name] = [entry]
    return ret

def work_with_data(data):
    """Do whatever you like with the data."""
    # It's just printed out here. Replace this with your code.
    for stat_name, data_list in data.items():
        print("\033[31;49;1m%s\033[0m" % stat_name)
        for data in data_list:
            print("  " + str(data))

def main(url):
    """The main function."""
    work_with_data(fetch_data(url))
    return 0

if __name__ == "__main__":
    # We parse the arguments and call main.
    if len(sys.argv) != 2:
        print("ERROR: You need to pass an URL", file=sys.stderr)
        print("Usage:")
        print("  %s <URL>" % sys.argv[0])
        sys.exit(1)
    sys.exit(main(sys.argv[1]))

Du könntest dieses Script (nachdem du es an deine Bedürfnisse angepasst hast) per Cronjob in regelmäßigen Abständen laufen lassen, um die Daten abzurufen.
Falls du sie in eine Datenbank schreiben willst, müsstest du das noch einprogrammieren. An dieser Stelle kommt es wirklich sehr darauf an, was du damit ganz genau vor hast.

Ich kann dir hierfür wirklich ans Herz legen, eine Scriptsprache wie Python oder Ruby zu lernen, denn die sind ideal, um mal eben mit ein paar Zeilen Code so ein kleines Programm auf die Beine zu stellen.

Viele Grüße,
Pik-9
 
Zurück
Oben