Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1788to1792
Aktuelles Verzeichnis
Verzeichnis Index
Übersicht Verzeichnisse
Vorheriger Thread
Rückwärts Blättern
Nächster Thread
Vorwärts blättern
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
Inhaltsverzeichnis

WebLogin mit Dateiöffnen

WebLogin mit Dateiöffnen
02.11.2020 07:42:53
Peter
Hallo Forum
Ich habe folgendes Problem:
Ich will mich per Macro auf einer Webseite einloggen und dann csv Dateien downloaden, öffnen und in mein Macro importieren.
Ich hab mal mit einem "InternetExplorer.Application" gemacht.
Login - Funktioniert
dann kammen 3 oder 4 redirekt -- hab ich im Griff
Links der Dateien auslesen - Funktioniert
Habe auch den Download schon geschaft mit
"Ie.navigate + Wartezeit + Alt+S + Wartezeit "
Dann hole ich mir den Downloadpfad vom InternetExplorer aus der Registry und kopiere mir sie um
Jetzt erst kann ich sie öffnen
Denk mir aber das müsste einfacher gehen !
Hoffe auf vorschläge eurer Seite !

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

Betreff
Datum
Anwender
Anzeige
AW: WebLogin mit Dateiöffnen
02.11.2020 12:05:55
Zwenn
Hallo Peter,
wenn sich der Download nicht über urlmon() durchführen lässt, weil die csv-Dateien erst durch die Anfrage von der Webseite (anklicken der Downloadlinks) auf dem Web-Server generiert werden, sehe ich da wenig Spielraum.
Du kannst versuchen das Ganze über xhr (XML HTTP Request) durchzuführen. Für den Login kannst Du die Crdentials mitgeben. Die Donloadlinks müsstest Du auslesen können, sofern es mit den redirects keine Probleme gibt. Was genau verstehst Du darunter, bzw. was passiert da? xhr kann "nur" statische Seiten holen. Keine Verarbeitung von clientseitigen Scripten und kein (automatisches) Geplänkel mit dem Server.
Was ich noch nie ausprobiert habe, ist das Senden eines Downloadlinks zum Generieren einer Datei auf einem Server und das Anschließende Runterladen der Datei über urlmon(). Da wird aber in den meisten Fällen vermutlich mindestens eine ID zur Verifizierung benötigt. Evtl. auch Cookies oder noch weiteres Gedöns. Das macht der IE alles automatisch im Hintergrund für Dich. So veraltet die Diva auch sein mag, für solche Sachen ist die Nutzung noch immer sehr bequem, sofern die Seite noch mindestens mit den benötigten Funktionalitäten im IE läuft.
Den Pfad vom IE musst Du nicht zwingend aus der Reg auslesen. Sofern in den Einstellungen des IE kein Downloadpfad gesetzt wurde, wird der Standard Downloadpfad verwendet. Also der Systemordner Downloads. Sofern ein Pfad gesetzt ist, steht dieser (auch) in der Reg. Soll Dein Makro auf mehreren Rechnern laufen, auf denen Du die Situation nicht überblicken kannst, ist das Auslesen aus der Reg eine sinnvolle Sache. Auf einem Rechner reicht es, wenn Du den Pfad einfach kennst und im Makro verwendest.
Wozu ich leider gar nix sagen kann, ist die Verwendung von Selenium mit einem Webdriver Deiner Wahl. Ich glaube da geht auch eine Menge einfacher und stabiler als mit dem IE direkt über COM, habe mich damit aber bisher noch nicht beschäftigt.
Viele Grüße,
Zwenn
Anzeige
AW: WebLogin mit Dateiöffnen
02.11.2020 15:37:04
Peter
Hallo,
Der Downloadlink auf der Seite ist sofort verfügbar !
Aber eben an den Login und die Session(Cookie) geknüpft.
Under Redirekt versteh ich, eine Weiterleitung mit Click auf Login Taste. Da Hüpft er irgendwie 2-3 mal,
UrlMon() Hab ich schon gesehen. aber wie verknüpfe ich das mit meinem Login ?(Session,Cookie)
xml Http Request schau ich mir mal an.
Nochmal der Login: in code Form
Adresse = "http://10.100.200.31/"
'Explorer auf seite öfnen
Set Ie = CreateObject("InternetExplorer.Application")
Ie.Visible = True
Ie.navigate Adresse & "StorageCardSD/Logs?UP=TRUE&FORCEBROWSE"
Do: Loop Until Ie.Busy = False
On Error GoTo Eingeloggt
Ie.document.forms(0).elements("Login").Value = "Administrator"
Ie.document.forms(0).elements("Password").Value = "4311"
Ie.document.forms(0).submit
Eingeloggt:
'Mehrere Fensterwechsel
Do: Loop Until Ie.Busy = False
Do: Loop Until Ie.Busy = False
Do: Loop Until Ie.Busy = False
Do: Loop Until Ie.Busy = False
Der Download mach ich dann so
Ie.navigate Adresse & Dateipfad
Application.Wait (Now + TimeValue("0:00:02"))
'Alt S - Save File
Application.SendKeys "%S", True
Application.Wait (Now + TimeValue("0:00:04"))
wie gesagt das gefällt mir nicht.
Anzeige
AW: WebLogin mit Dateiöffnen
02.11.2020 16:31:26
Zwenn
Hallo Peter,
das ist eine Intranetseite nehme ich an. Da kannst Du eigentlich nur "rumprobieren". Hier ist ein Link für den Einstieg zur Verwendung von Credentials. Damit sollten sich die Redirects eigentlich direkt erledigen.
https://developer.mozilla.org/en-US/docs/Web/API/XMLHttpRequest/withCredentials
Wenn Du mit einem Cookie arbeiten musst, musst Du mal googeln oder z.B. StackOverflow als Infoquelle verwenden. Da bin ich auch noch nicht so weit das anzuwenden.
Es ist mir in einem bisherigen Versuch bisher nicht gelungen urlmon() zu verwenden, nachdem ich die Seite mit dem IE aufgerufen hatte. Da war die Lösung dann auch mit Sendkeys() zu arbeiten, was ich auch als unbefriedigend empfinde.
Viele Grüße,
Zwenn
Anzeige
AW: WebLogin mit Dateiöffnen
02.11.2020 19:10:04
Peter
Danke Zenn für die Tipps ! Werde sie mal berücksichtigen.
Intranet jain ..... Webinterface eines Simatic Siemens Panel !
Siemens lässt den zugriff auf die gesteckte Speicherkarte nur über WEbinterface zu. Netzlaufwerk wäre auch möglich, ist aber nicht gewünscht.
AW: WebLogin mit Dateiöffnen
03.11.2020 09:57:20
Peter
Hallo,
Also mit HTTPRequest komm ich irgendwie gar nicht ins laufen
Hier noch mal der HTML Code wo der Login drin is
https://www.herber.de/bbs/user/141266.txt

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige
Archiv - Verwandte Themen