_IEDocReadHTML

  • Guten Tag

    Hänge nun leider wieder an einem Schritt.

    Dieses mal möchte ich von dieser Test Webseite http://www.geileswetter.de/ den Quellcode auslesen.

    Das Problem dabei ist, dass wenn ich nun auf Termine klicke und mein Skript erneut ausführe kommt immer der gleiche Quellcode.

    [autoit]

    $oIE = _IEAttach("", "instance")
    $sHTML = _IEDocReadHTML($oIE)
    MsgBox(0, "Document Source", $sHTML)

    [/autoit]

    Das ist ja auch logisch.

    Nun wie kann ich es schaffen, dass mir nun der Quellcode vom (Termine.htm) ausgegeben wird und wiederum wenn ich auf Firmen klicke
    das Skript erneut starte der Quellcode vom (MZKS.htm) angezeigt wird usw.?

    Würde mich über eine Antwort freuen!

    Gruss

    Einmal editiert, zuletzt von Chaspel (13. April 2013 um 19:58)

    • Offizieller Beitrag

    Wenn du zwischendurch per Hand rumklickst, stimmt in deinem Skript logischerweise die Zuordnung zum IE nicht mehr, da mit _IEAttach auf die vorige Webseite referenziert wurde.
    Du mußt also den Bezug aktualisieren (Referenz auf die jetzt aktuelle Seite holen) oder besser nicht per Hand rumklicken, sondern alles automatisieren.

  • Zitat

    Wenn du zwischendurch per Hand rumklickst, stimmt in deinem Skript logischerweise die Zuordnung zum IE nicht mehr, da mit _IEAttach auf die vorige Webseite referenziert wurde. Du mußt also den Bezug aktualisieren (Referenz auf die jetzt aktuelle Seite holen) oder besser nicht per Hand rumklicken, sondern alles automatisieren.

    Genau das müsste ich tun. Leider habe ich keine Idee wie das gehen soll. :S
    _IEAttach müsste wissen welches Frame zuletzt geladen wurde. Da die URL aber nicht in der Adresszeile abgeändert wird,
    fällt mir kein weg ein um dass herauszufinden. ?(

  • Habs raus!!!

    Etwas kommt mir aber Spanisch vor.

    [autoit]

    #include <IE.au3>
    #include <File.au3>

    [/autoit][autoit][/autoit][autoit]

    Local $oIE = _IEAttach("", "instance")
    Local $oFrames = _IEFrameGetCollection($oIE)
    Local $iNumFrames = @extended
    For $i = 0 to ($iNumFrames - 1)
    $oFrame = _IEFrameGetCollection($oIE, $i)
    FileWrite("Test.txt", _IEPropertyGet($oFrame, "locationurl"))
    Next

    [/autoit]

    Ergebnis:

    Spoiler anzeigen

    Soweit so gut!

    [autoit]

    #include <IE.au3>
    #include <File.au3>

    [/autoit][autoit][/autoit][autoit]

    Local $oIE = _IEAttach("", "instance")
    Local $oFrames = _IEFrameGetCollection($oIE)
    Local $iNumFrames = @extended
    For $i = 0 to ($iNumFrames - 1)
    $oFrame = _IEFrameGetCollection($oIE, $i)
    $file = FileOpen("test.txt", 1)
    _FileWriteToLine("test.txt", 1, _IEPropertyGet($oFrame, "locationurl"), 1)
    FileClose($file)
    Next

    [/autoit]

    Ergebnis:

    Spoiler anzeigen

    Endlich das gewünschte Ergebnis. :rock: Aber wieso Zeigt er jetzt nur noch eine URL an??? Das verstehe ich jetzt nicht???

    Gruss

    Einmal editiert, zuletzt von Chaspel (13. April 2013 um 17:29)

  • Da du mit Hilfe von _FilwWriteToLine immer das Ergebnis in Zeile 1 schreibst, schau dir mal den Befehl in der Hilfe an. ;)

    Und warum öffnest du die Datei ohne sie zu verwenden und wieder zu schließen? :huh:
    Schau dir am besten auch mal FileOpen etc. in der Hilfe an.

    MfG

    There's a joke that C has the speed and efficieny of assembly language combined with readability of....assembly language. In other words, it's just a glorified assembly language. - Teh Interwebz

    C makes it easy to shoot yourself in the foot; C++ makes it harder, but when you do, you blow off your whole leg. - Bjarne Stroustrup
    Genie zu sein, bedeutet für mich, alles zu tun, was ich will. - Klaus Kinski