IE HTML Code auf Knopfdruck speichern?
Geizhals » Forum » Programmierung » IE HTML Code auf Knopfdruck speichern? (13 Beiträge, 132 Mal gelesen) Top-100 | Fresh-100
Du bist nicht angemeldet. [ Login/Registrieren ]
.....
Re(5): IE HTML Code auf Knopfdruck speichern?
21.04.2005, 00:26:00
Gut, also funktioniert wenigstens das CreateObject bzgl des IE noch. War aber schon klar, dass man da noch etwas mehr tun muss als das Ersetzen vom GetObject auf CreateObject.

Vielleicht zum Verständnis:
Mit IE=CreateObject("InternetExplorer.Application") generierst man eine neue IE-Instanz (also praktisch ein neues Explorer-Fenster), das standardmässig unsichtbar ist, solange man es nicht mit "Ie.Visible=True" sichtbar schaltest.
Mit IE=GetObject(,"InternetExplorer.Application") schafft man eine Verbindung zu einer bereits existierenden IE-Instanz (daher muss dafür natürlich auch immer mindestens ein IE-Fenster offen sein).

Da GetObject zumindest in Bezug auf den IE bei Dir leider "kaputt" zu sein scheint müssen wir also die Strategie in Richtung CreateObject abändern.

Daher nächstes Beispiel:
Hier erzeuge ich mit einem Aufruf für 3 bestimme (zufällig gewählte) Geizhals-User deren UserInfo-Seiten als HTML-Dateien und lege sie auf C:\ ab. Das Array ist natürlich beliebig erweiterbar.

-----------

Set Fso = CreateObject("Scripting.FileSystemObject")
Set IE = CreateObject("InternetExplorer.Application")
Ie.Visible = True

For Each Id In Array(96042,60535,47133)
  IE.Navigate "http://forum.geizhals.at/userinfo.jsp?id=" & Id
  While IE.Busy
  WEnd  
  Set Fi = Fso.CreateTextFile ("C:\" & Id & ".Html")
  Fi.Write IE.Document.DocumentElement.innerHtml
  Fi.Close
Next

-----------

Wenn meine Theorie richtig ist, dann sollte obiges Geizhals-Beispiel bei Dir 1:1 funktionieren und Du müsstest es also nur noch auf deine konkreten Seiten und Ids anpassen.

Falls es dabei mit dem Login ein Problem gibt (ich bin mir momentan nicht ganz sicher, wie sich das bei Deiner Seite auswirkt) dann fügst einfach als etwas unschönen Workaround zusätzlich eine MsgBox-Zeile ein:

Ie.Visible = True
MsgBox "Weitermachen"
For Each Id In Array(96042,60535,47133)

d.h. Nach dem Starten des Skripts öffnet sich ein IE-Fenster und zusätzlich eine Box mit dem Text "Weitermachen". Im IE-Fenster gehst Du auf die Seite wo die Anmeldung ist und meldest dich an. Danach bestätigst die "Weitermachen-Box" und löst damit die Erzeugung aller Dateien, die in dem Array aufgeführt sind aus.

Wenns das so funktioniert, kann man später natürlich die Grauslichkeit mit der MsgBox noch etwas verschönern (automatisches Login, ...)



Antworten PM Übersicht Chronologisch Zum Vorgänger
 
Melden nicht möglich
 

Dieses Forum ist eine frei zugängliche Diskussionsplattform.
Der Betreiber übernimmt keine Verantwortung für den Inhalt der Beiträge und behält sich das Recht vor, Beiträge mit rechtswidrigem oder anstößigem Inhalt zu löschen.
Datenschutzerklärung