Anzeige
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender

Forumthread: PW-geschützte Internetseite öffnen + Datenimport

PW-geschützte Internetseite öffnen + Datenimport
29.04.2015 14:15:02
Alexander
Liebes Forum,
bedauerlicherweise verfüge ich selbst nur über äußerst bescheidene VBA Kenntnisse.
Daher hoffe ich auf Eure Unterstützung.
Ich stehe vor der folgenden Herausforderung:
Von einer mit einem Passwort geschützten Seite möchte ich "Daten aus dem Web" importieren. Dies funktioniert auch mit der entsprechenden Webabfrage in Excel 2013 sehr gut. Der Knackpunkt hierbei ist lediglich, dass ich die Verbindung beim Start des Programms - und nach Ablauf der Session - immer wieder aktualisieren muss, da ein automatischer Login nicht erfolgt. Weiterhin sollen im Anschluss an den Login Daten von einer anderen Seite minütlich, wie bei der Webabfrage einstellbar, und automatisch (also ohne mein Zutun) über die Hintergrundabfrage erfolgen.
Mit dem Makrorekorder sieht zumindest der Datenimport über die Webabfrage folgendermaßen aus:
Sub WEBABFRAGE()
With ActiveSheet.QueryTables.Add(Connection:= _
"URL;https://ABC-XYZ.de/ABC_de/listprices", Destination:=Range("$A$1"))
.CommandType = 0
.Name = "listprices"
.FieldNames = True
.RowNumbers = False
.FillAdjacentFormulas = False
.PreserveFormatting = True
.RefreshOnFileOpen = True
.BackgroundQuery = True
.RefreshStyle = xlInsertDeleteCells
.SavePassword = False
.SaveData = True
.AdjustColumnWidth = True
.RefreshPeriod = 1
.WebSelectionType = xlSpecifiedTables
.WebFormatting = xlWebFormattingNone
.WebTables = """tablesorter-demo"""
.WebPreFormattedTextToColumns = True
.WebConsecutiveDelimitersAsOne = True
.WebSingleBlockTextImport = False
.WebDisableDateRecognition = False
.WebDisableRedirections = False
.Refresh BackgroundQuery:=False
End With
End Sub
Jedoch fehlt hier, wie beschrieben, das Login, welches zuvor auf einer anderen Seite erfolgen muss: "https://ABC-XYZ.de/ABC_de/customer/account/login"
Für Eure Hilfe und Unterstützung danke ich im Voraus.
Freundliche Grüße,
Alexander

Anzeige

5
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: PW-geschützte Internetseite öffnen + Datenimport
29.04.2015 17:35:04
Martin
Hallo Alexander,
eigentlich wollte ich dir gerade helfen und hatte schnell die URL kopiert, um einen entsprechenden Code zu schreiben. Aber die Adresse https://ABC-XYZ.de/ABC_de/customer/account/login ist natürlich reine Fantasie. Ich verstehe nicht, weshalb du uns die Adresse der Seite bzw. den Quellcode der Seite vorenthältst. Bei deinem angegebenen VBA-Level wirst du es wohl kaum allein schaffen?!
Nun kenne ich nicht die Felder zum Befüllen von Benutzernamen und Kennwort und kann dir auch nicht helfen. Suche im Archiv nach getElementById bzw. getElementsByName und analysiere den Quellcode der Login-Seite, vielleicht bekommst du es ja doch selbst hin.
Viele Grüße
Martin Springer

Anzeige
AW: PW-geschützte Internetseite öffnen + Datenimport
30.04.2015 09:31:23
Alexander
Guten Morgen Martin,
vielen Dank für Deine Nachricht und Deine Hinweise.
Selbstverständlich werde ich es mit meinem VBA-Level nicht allein schaffen, den Code zu schreiben.
Sehr gern würde ich auf Deine Unterstützung zurückkommen.
Die Quellcodes der benötigten Felder sollten wie folgt lauten:
name="login[username]" value="" id="email" class="input-text required-entry validate-email" title="E-Mail Adresse" type="text"
name="login[password]" class="input-text required-entry validate-password" id="pass" title="Passwort" type="password"
button type="submit" class="button" title="Anmelden" name="send" id="send2"

Vielleicht lässt sich dies ja bereits weiterverarbeiten.
Den Original-Quellcode möchte ich allerdings aus Gründen der Diskretion nur bedingt öffentlich machen.
Eine persönliche Weitergabe unter Wahrung der Vertraulichkeit wäre selbstverständlich durchaus möglich.
Für weitere Unterstützung bin ich überaus dankbar!
Freundliche Grüße
Alexander

Anzeige
AW: PW-geschützte Internetseite öffnen + Datenimport
30.04.2015 18:11:11
Martin
Hallo Alexander,
der von dir gepostete HTML-Code sollte ausreichen. Ich komme aber erst Montag oder Dienstag dazu den VBA-Code zu schreiben. Ich hoffe, dass du bis dahin warten kannst.
Viele Grüße
Martin

AW: PW-geschützte Internetseite öffnen + Datenimport
06.05.2015 09:22:00
Alexander
Guten Morgen Martin,
bitte entschudlige, dass ich mich bis dato noch nicht zurückgemeldet habe.
Natürlich hatte es mir nichts ausgemacht, zu warten.
Offenbar hattest Du jedoch noch keine Gelegenheit, den Code zu erstellen.
Trotzallem bin ich für jegliche Unterstützung dankbar.
Mit freundlichem Gruß
Alexander

Anzeige
AW: PW-geschützte Internetseite öffnen + Datenimport
06.05.2015 16:23:31
Alexander
Hallo Martin,
ich hatte hierzug heute morgen bereits einen Post erzeugt.
Doch dieser wird bedauerlicherweise nicht im Forum angezeigt.
Bitte entschuldige, wenn ich auf Deine letzte Rückmeldung nicht mehr reagiert hatte.
Ich habe selbstverständlich gern gewartet, da ich selbst ein solches Werk nicht vollbringen könnte.
Wann schaffst Du es ggf., den Code für den von mir beschriebenen Fall zu programmieren?
Viele Grüße und vielen Dank,
Alexander
Anzeige
;

Forumthreads zu verwandten Themen

Entdecke relevante Threads

Schau dir verwandte Threads basierend auf dem aktuellen Thema an

Alle relevanten Threads mit Inhaltsvorschau entdecken
Anzeige
Anzeige

Infobox / Tutorial

PW-geschützte Internetseite in Excel importieren


Schritt-für-Schritt-Anleitung

Um Daten von einer PW-geschützten Internetseite in Excel zu importieren, benötigst du grundlegende Kenntnisse in VBA (Visual Basic for Applications). Folge diesen Schritten:

  1. Öffne Excel und gehe zu Entwicklertools > Visual Basic, um den VBA-Editor zu öffnen.

  2. Erstelle ein neues Modul: Klicke mit der rechten Maustaste auf VBAProject (DeineDatei.xlsx) > Einfügen > Modul.

  3. Füge den folgenden VBA-Code ein:

    Sub DatenVonWebsiteImportieren()
       Dim ie As Object
       Set ie = CreateObject("InternetExplorer.Application")
       ie.Visible = False
    
       ' Gehe zur Login-Seite
       ie.Navigate "https://ABC-XYZ.de/ABC_de/customer/account/login"
    
       ' Warte bis die Seite vollständig geladen ist
       Do While ie.Busy Or ie.readyState <> 4
           DoEvents
       Loop
    
       ' Fülle das Login-Formular aus
       ie.document.getElementById("email").Value = "deine_email@example.com"
       ie.document.getElementById("pass").Value = "dein_passwort"
       ie.document.getElementById("send2").Click
    
       ' Warte bis die nächste Seite geladen ist
       Do While ie.Busy Or ie.readyState <> 4
           DoEvents
       Loop
    
       ' Nun kannst du die Daten von der gewünschten Seite abrufen
       ie.Navigate "https://ABC-XYZ.de/ABC_de/listprices"
       Do While ie.Busy Or ie.readyState <> 4
           DoEvents
       Loop
    
       ' Daten in Excel importieren
       ' Hier kannst du den Code zur Datenübertragung hinzufügen
    
       ie.Quit
       Set ie = Nothing
    End Sub
  4. Passe die Felder deine_email@example.com und dein_passwort an deine Anmeldedaten an.

  5. Starte das Makro, um die Daten von der Website in Excel zu importieren.


Häufige Fehler und Lösungen

  • Fehler: „Element nicht gefunden“: Überprüfe, ob die IDs der HTML-Elemente korrekt sind. Nutze die Entwicklertools deines Browsers, um die IDs zu bestätigen.

  • Fehler: „Seite lädt nicht“: Stelle sicher, dass die URL korrekt ist und dass du eine Internetverbindung hast.

  • Fehler: „VBA läuft nicht“: Aktiviere die Makros in den Excel-Optionen und stelle sicher, dass der VBA-Editor keine Fehler anzeigt.


Alternative Methoden

Wenn VBA nicht die gewünschte Lösung bietet, kannst du auch folgende Methoden ausprobieren:

  • Power Query: Gehe zu Daten > Daten abrufen > Aus dem Web. Diese Methode unterstützt keine Anmeldungen, ist aber einfach zu bedienen.

  • Drittanbieter-Tools: Es gibt Tools wie Import.io oder Web Scraper, die das Scraping von Daten ohne Programmierkenntnisse ermöglichen.


Praktische Beispiele

Ein typisches Beispiel für den Import von Daten könnte so aussehen:

Sub BeispielDatenImport()
    ' Detaillierte Implementierung zur Datenübertragung hier hinzufügen
    ' Beispielsweise Daten von "https://ABC-XYZ.de/ABC_de/listprices" abrufen
End Sub

Hierbei kannst du die spezifischen Tabellen oder Datenstrukturen der Seite anpassen, um die gewünschten Informationen zu extrahieren.


Tipps für Profis

  • Verwende Sleep-Funktionen: Füge Application.Wait (Now + TimeValue("0:00:01")) zwischen den Ladezeiten hinzu, um sicherzustellen, dass die Seite vollständig geladen ist.

  • Fehlerbehandlung einfügen: Baue Fehlerbehandlungsroutinen mit On Error Resume Next ein, um die Stabilität deines Codes zu erhöhen.

  • Regelmäßige Aktualisierungen: Setze die RefreshPeriod-Eigenschaft in deinem QueryTable, um Daten automatisch zu aktualisieren.


FAQ: Häufige Fragen

1. Wie kann ich sicherstellen, dass mein Excel-Dokument die neuesten Daten hat?
Du kannst die RefreshOnFileOpen-Option auf True setzen, um die Daten beim Öffnen der Datei automatisch zu aktualisieren.

2. Ist es möglich, Daten aus mehreren Seiten in Excel zu importieren?
Ja, du kannst mehrere Navigate-Befehle im selben Makro verwenden, um Daten von verschiedenen Seiten zu importieren. Achte dabei jedoch darauf, die Ladezeiten zu berücksichtigen.

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Entdecke mehr
Finde genau, was du suchst

Die erweiterte Suchfunktion hilft dir, gezielt die besten Antworten zu finden

Suche nach den besten Antworten
Unsere beliebtesten Threads

Entdecke unsere meistgeklickten Beiträge in der Google Suche

Top 100 Threads jetzt ansehen
Anzeige