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

Forumthread: Daten aus passwort geschüzter website auslesen

Daten aus passwort geschüzter website auslesen
09.07.2018 10:32:36
Theo
Hallo liebe Experten,
seit vielen Jahren verwende ich untenstehenden Code (ich habe es für Forenzwecke etwas vereinfacht) um Daten aus einer unseren internen Websiten nach Excel zu laden.
Function getProductDetails(strcode As String) As Variant
PC_URL = "http://xy.internal.XY.com/xyclient-1.0/getFpcDetails.do?prodfpc="
'Init cache if necessary
If objCatalog Is Nothing Then
Set objCatalog = CreateObject("Scripting.Dictionary")
End If
'Query cache
If objCatalog.Exists(strcode) Then
getProductDetails = objCatalog.Item(strcode)
Exit Function
End If
'Send request
On Error Resume Next
objReq.Open "GET", PC_URL & strcode, False
objReq.Send Null
On Error GoTo 0
If Len(objReq.responseText) = 0 Then
getProductDetails = Null
Else
getProductDetails = varResult
End If
End Function

Leider wurde jetzt eine etwas unnütze Passwortabfrage vorgeschaltet. Beim manuellen Aufruf reicht es sich einmal einzuloggen. Bei der Abfrage mittels "GET" scheint aber jedesmal auf die Paswort seite umgeleitet zu werden. Jedenfalls bekomme ich angehängten ResponseText zurück: https://www.herber.de/bbs/user/122563.txt
.
Hat jemand eine Idee ob, und wie ich Username und Passwort übergeben kann?
Danke für die Hilfe
Theo
Anzeige

1
Beitrag zum Forumthread
Beitrag zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Daten aus passwort geschüzter website auslesen
09.07.2018 12:47:16
ChrisL
Hi Theo
Das Passwortformular (TXT-Anhang) funktioniert mit dem POST Prinzip. Somit ist klar, dass du das PW nicht einfach im URL via GET übermitteln kannst.
Es braucht also ein Script, welches die PW-Seite aufruft, die Felder ausfüllt und das Formular mit POST abschickt. Erst danach können die Daten abgerufen werden.
Beispiel:
https://www.herber.de/forum/archiv/1120to1124/1121764_WEB_Formular_ausfuellen.html
Da es sich scheinbar um eine betriebsinterne Angelegenheit handelt, würde ich nach einem direkten Weg suchen, um auf die Daten zuzugreifen.
cu
Chris
Anzeige
;

Forumthreads zu verwandten Themen

Anzeige
Anzeige
Anzeige
Anzeige
Anzeige
Anzeige

Infobox / Tutorial

Daten aus passwortgeschützter Website auslesen


Schritt-für-Schritt-Anleitung

  1. VBA-Umgebung öffnen:

    • Öffne Excel und gehe zu Entwicklertools > Visual Basic.
    • Füge ein neues Modul hinzu.
  2. Code einfügen:

    • Kopiere den folgenden VBA-Code in das Modul:
    Function getProductDetails(strcode As String) As Variant
       Dim objReq As Object
       Set objReq = CreateObject("MSXML2.ServerXMLHTTP.6.0")
       Dim PC_URL As String
       PC_URL = "http://xy.internal.XY.com/xyclient-1.0/getFpcDetails.do?prodfpc="
    
       'Init cache if necessary
       If objCatalog Is Nothing Then
           Set objCatalog = CreateObject("Scripting.Dictionary")
       End If
    
       'Query cache
       If objCatalog.Exists(strcode) Then
           getProductDetails = objCatalog.Item(strcode)
           Exit Function
       End If
    
       On Error Resume Next
       objReq.Open "GET", PC_URL & strcode, False
       objReq.Send Null
       On Error GoTo 0
    
       If Len(objReq.responseText) = 0 Then
           getProductDetails = Null
       Else
           getProductDetails = objReq.responseText
       End If
    End Function
  3. Passwortabfrage berücksichtigen:

    • Wenn du auf eine Passwortabfrage stößt, musst du die Daten über ein POST-Formular übermitteln. Hierbei solltest du ein weiteres VBA-Script anpassen, das das Passwort einfügt und das Formular absendet.
  4. Daten abrufen:

    • Verwende die Funktion getProductDetails in deinen Excel-Zellen, um die Daten zu laden.

Häufige Fehler und Lösungen

  • Problem: Du erhältst eine Passwortabfrage.

    • Lösung: Stelle sicher, dass du ein POST-Request für das Login verwendest, bevor du die GET-Anfrage für die Daten sendest.
  • Problem: Der ResponseText ist leer.

    • Lösung: Überprüfe die URL und stelle sicher, dass alle Parameter korrekt übergeben werden.

Alternative Methoden

  • Webabfragen in Excel:

    • Du kannst auch die integrierte Funktion in Excel verwenden, um Daten von Websites auszulesen. Gehe zu Daten > Daten abrufen > Aus dem Web.
  • Power Query:

    • Verwende Power Query, um Daten von einer Website zu extrahieren. Achte darauf, dass du die Authentifizierung korrekt einstellst.

Praktische Beispiele

  • Beispiel für POST-Anfrage:

    Function LoginAndGetData(username As String, password As String) As String
       Dim objReq As Object
       Set objReq = CreateObject("MSXML2.ServerXMLHTTP.6.0")
       Dim loginURL As String
       Dim dataURL As String
    
       loginURL = "http://xy.internal.XY.com/login"
       dataURL = "http://xy.internal.XY.com/data"
    
       'Login
       objReq.Open "POST", loginURL, False
       objReq.setRequestHeader "Content-Type", "application/x-www-form-urlencoded"
       objReq.Send "username=" & username & "&password=" & password
    
       'Daten abrufen
       objReq.Open "GET", dataURL, False
       objReq.Send
    
       LoginAndGetData = objReq.responseText
    End Function

Tipps für Profis

  • Cache auslesen: Wenn du häufig auf die gleichen Daten zugreifst, speichere sie im Cache, um die Performance zu verbessern.
  • Fehlerbehandlung: Füge eine umfassende Fehlerbehandlung in deinen VBA-Code ein, um unerwartete Probleme zu vermeiden.

FAQ: Häufige Fragen

1. Wie kann ich die Daten von der Website automatisch abrufen? Du kannst VBA-Skripte nutzen, um die Daten regelmäßig abzurufen und in Excel zu aktualisieren.

2. Kann ich die Daten ohne VBA abrufen? Ja, du kannst die integrierten Webabfragen in Excel verwenden, um Daten ohne VBA zu importieren.

3. Was mache ich, wenn ich keine Berechtigung habe? Wende dich an deinen IT-Support, um die erforderlichen Berechtigungen zu erhalten oder alternative Zugangswege zu finden.

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige