(Quell)text aus https-Seite auslesen

  • Hallo,

    zuerst mal ein dickes Lob für das tolle Forum!

    Jetzt zu meinem Problem:
    Ich möchte ein GUI erstellen, mit dem ich bei meiner Onlinebank Geld überweisen kann ohne dass der Internet Explorer geöffnet wird. Die URL öffnen und bei meiner Bank anmelden klappt soweit. Nun muss ich das aktuelle Fenster nach der iTAN-Nr parsen. Ich habe schon in allen Frames den Quelltext durchsucht. Wenn ich den ausgegebenen Quelltext in einem neuen Fenster öffne steht "Im Augenblick benutzen Sie "AutoIt v3" als Web-Browser."

    Da ich alle Eingaben über den InternetExplorer laufen, kann ich mir nicht erklären wie AutoIt als Browser erkannt wurde.

    Wie komme ich an den Text bzw. Quelltext des aktuellen Fensters?

    hier mein Script

    Spoiler anzeigen


    #include <ie.au3>
    #include <inet.au3>

    $sWebsite = "http://www.meinebank.de"
    $sUser = "123456"
    $sPasswd = "654321"
    $sFormElement = "login"
    $sUserElement = "uElement"
    $sPasswdElement = "pElement"

    $oIE = _IECreate()
    _IENavigate($oIE, $sWebsite,1)
    _IELoadWait($oIE)

    $sCForm = _IEFormGetObjByName($oIE, $sFormElement)
    $sCUser = _IEFormElementGetObjByName($sCForm,$sUserElement)
    $sCPasswd = _IEFormElementGetObjByName($sCForm,$sPasswdElement)

    _IEFormElementSetValue($sCUser, $sUser)
    _IEFormElementSetValue($sCPasswd, $sPasswd)
    _IEFormSubmit($sCForm)
    _IELoadWait($oIE)

    $oFrames = _IEFrameGetCollection ($oIE)
    $iNumFrames = @extended

    For $i = 0 to ($iNumFrames - 1)
    $oFrame = _IEFrameGetCollection ($oIE, $i)
    $sFrame = _IEPropertyGet ($oFrame, "locationurl")
    MsgBox(0, "Frame Info " & $i,$sFrame)
    MsgBox(0, "Inet Source Info " & $i, _INetGetSource($sFrame))
    Next

  • mhh so ein rpbolem hatte ich noch nie um ehrlich zu sein....komisch...
    versuch mal _IEDocReadHTML....was anders kann ich zurzeit auch nicht vorschlagen :rolleyes:

    • Offizieller Beitrag

    Das Problem könnte daher rühren, dass AutoIt parent-Prozess der IEXPLORE.exe ist. Das heißt, wenn du den IE mit AutoIt startest, ist das möglicherweise erkennbar und wird dann aus Sicherheitsgründen (Phishing, ...) blockiert.
    Gegenmittel könnte sein: IE mit einem Skript starten, dass an seinem Ende ein zweites Skript startet und sich selbst beendet. Dann sollte der IE einen normalen Parent haben (explorer.exe z.B.).

    Viel Erfolg,
    peethebee

  • also denke hab das problem entdeckt....
    mit _INetGetSource greift das programm autoit selbst auf den server zu...es ergibt sich folgender code bei überprüfung:

    Code
    2007-01-16 16:24:33 :
    Ihr Browser gibt sich zu erkennen als: AutoIt v3
    und ihre IP Adresse ist: 127.0.0.1, Ihr Hostname ist: localhost und das Datum ist 16.01.2007
    Ihre Server IP lautet: 127.0.0.1
    Ihr Server Name lautet: localhost


    bei _IEDocReadHTML ergibt sich jedoch:

    Code
    2007-01-16 16:26:44 : 
    Ihr Browser gibt sich zu erkennen als: Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; SV1)
    und ihre IP Adresse ist: 127.0.0.1, Ihr Hostname ist: localhost und das Datum ist 16.01.2007
    Ihre Server IP lautet: 127.0.0.1 
    Ihr Server Name lautet: localhost


    ganz simpel mit nem localhost script geprüft und ner php global variable($_SERVER["HTTP_USER_AGENT"]).....der unterschied ist deutlich in dem punkt Ihr browser gibt sich zu erkennen als.....

  • Danke an snozzer & peethebee für die interessanten Unterschiede zwischen _INetGetSource und _IEDocReadHTML. Trotzdem bekomme ich nicht den Quelltext des Frames angezeigt, der mich interessiert. Ich nutze nun die Zwischenablage mit copy & paste und komme so an den Text des aktuellen Fensters. Ist zwar nicht sehr elegant, aber es funktioniert ;)

    Zitat

    Original von snoozer
    also denke hab das problem entdeckt....mit _INetGetSource greift das programm autoit selbst auf den server zu...