Daten von einer Website mittels VBA auslesen und in Excel importieren

  • Excel

Es gibt 8 Antworten in diesem Thema. Der letzte Beitrag () ist von raven89.

    Daten von einer Website mittels VBA auslesen und in Excel importieren

    Hallo zusammen,

    ich bin gerade dabei, eine Datenbank zu erstellen und würde dafür gerne Daten von einer Website automatisch auslesen lassen.
    Konkret geht es um die Arbeitslosenquoten, die von der Bundesagentur für Arbeit monatlich veröffentlicht werden.

    Hier ein Link zu einer Beispielstadt: statistik.arbeitsagentur.de/Na…ern/Amberg-Stadt-Nav.html

    Im Beispiel sollte die Arbeitslosenquote insgesamt (5,9) und der Stand der Angabe (Mai 2016), der über der Tabelle steht, ausgelesen werden.

    Im HTML-Code ist die Quote in folgender Zeile angegeben: <td class="data">5,9</td>
    Beim Datum sieht es folgendermaßen aus: <span>Ar­beits­markt im Über­blick - Be­richts­mo­nat Mai 2016 - Am­berg, Stadt</span>

    Dabei sollten die ausgelesenen Werte in zwei separaten Excel-Feldern ausgegeben werden. Das muss aber nicht zwingend alles in einem Makro geschehen. Zwei Makros für die unterschiedlichen Felder wären optimal, da ich den Code dann wahrscheinlich auch besser nachvollziehen kann.

    Da die direkte Webabfrage über Excel nicht funktioniert, weil die Seite nicht korrekt geladen wird, denke ich, dass VBA hier unumgänglich ist, oder?
    Ich habe jedoch leider keine Programmierkenntnisse und bin aus den Einträgen in diversen Foren leider auch nicht schlau geworden.

    Im Nachhinein müsste das Makro entsprechend anpassbar sein, sodass ich auch die Daten der anderen Städte auslesen kann (die Quellseite ist immer nach dem gleichem Prinzip aufgebaut).

    Falls jemand eine Idee hat, wie das Problem zu lösen ist, würde ich mich sehr darüber freuen!
    Vielen Dank!

    Viele Grüße,
    Niccober
    Hallo,

    welchem Zweck soll das dienen? Einmal im Monat eine Webseite öffnen und einen Wert auslesen geht recht schnell. Ein passendes Script bauen dauert dann etwa so lange wie x Mal die Seite manuell aufrufen. Ändert sich der Aufbau der Seite, läuft das Script unter Umständen ins Leere.

    Edit:
    Darüber hinaus ist die Seite verschlüsselt und ohne JavaScript zeigt diese die Werte nicht an. Ob die schon im Code vorhanden sind, habe ich nicht analysiert.
    Gruß
    Peterfido

    Keine Unterstützung per PN!
    Hallo,

    es geht ja nicht nur um den Wert von Amberg, sondern um alle Werte. Daher ja auch die Idee mit dem Skript.
    Die Werte werden jeden Monat aktualisiert, also müsste man jeden Monat 295 Landkreise zzgl. aller kreisfreien Städte manuell neu aufnehmen, da wäre ein Skript schon sehr hilfreich.

    Der Aufbau der Seite hat sich seit Jahren nicht geändert, und da die Bundesagentur für Arbeit eine Behörde ist, gehe ich davon aus, dass sich da in nächster Zeit auch nicht viel ändern wird ;)

    Den Edit bzgl. JavaScript verstehe ich nicht ganz - im HTML-Code, den ich oben gepostet habe, sind die gewünschten Werte enthalten.

    Gruß,
    Niccober
    Hallo,

    ich nutze Firefox und da ist per NoScript standardmäßig erstmal kein JavaScript aktiv und der Link hat mir eine Seite ohne Werte angezeigt. Erst, als JavaScript aktiviert war, wurden mir die Werte angezeigt. Daher kann (wird) es sein, dass die Werte per JavaScript nachgeladen werden.

    Edit: Die Werte sind schon vorhanden. Die werden in

    Quellcode

    1. data-year-month='201606'
    2. data-eckwerte='

    abgelegt.
    Gruß
    Peterfido

    Keine Unterstützung per PN!
    Hallo,

    danach suchen (z.B. per instr) und dann die entscheidenen Stellen rauskopieren. Da stecken die Werte drin, bevor das JavaScript die für die Anzeige aufbereitet.
    Gruß
    Peterfido

    Keine Unterstützung per PN!
    Hallo Niccober, hast du denn mittlerweile eine Lösung gefunden. Wenn ja, gerne hier teilen, denn ich suche auch gerade nach einer Möglichkeit, um Daten automatisiert von Webseiten auf Excel zu exportieren. Bei mir geht es vor allem um Kontaktdaten.

    Ich würde dabei gerne die Adress-Daten (Address, Country, Phone, Fax und E-Mail) ich jeweils aus dem Quellcode entnehmen:


    <div class="clearfix">
    <dl>
    <dt>Founded</dt>
    <dd>2005</dd>

    <dt>Address</dt>
    <dd>
    Straße 1<br />
    PLZ<br />
    Stadt
    </dd>

    <dt>Country</dt>
    <dd>Germany</dd>

    <dt>Phone</dt>
    <dd>+00 (0000) 000 000</dd>

    <dt>Fax</dt>
    <dd> +11 (1111) 111 111 </dd>

    <dt>E-mail</dt>
    <dd><a href="mailto:mail@hotmail.com">mail@hotmail.com</a></dd>
    </dl>
    </div>
    </div>

    Da ich die Daten teilweise mehrere Hundert Male manuell auslesen müsste, würde ich auch gerne ein Skript oder Makros basteln. Werde mich dieses Wochenende auch mal nach Videotutorials umsehen und Bescheid geben, wenn ich einen guten Lösungsvorschlag gefunden hab. Vielleicht hilft es dir ja dann auch.

    Wenn noch jemand einen Tipp hat, lasst es mich hier oder per PN wissen. Besten Dank!
    Gruß,
    Raven