IE Link-Adresse auslesen

  • Also erstmal Hallo,wie ihr seht bin ich neu im Forum...

    Dann komm ich gleich zu meinem Problem:

    Ich habe ein Skript(mit IE.au3)...
    es ist soweit für mich alles klar, aber eine Frage kann ich mir nicht beantworten:
    wie kann ich aus einem Link, den man auch mit
    z.B.: _IELinkClickByText ($oIE,"Download starten") anklicken/bzw öffnen kann die Adresse herauslesen(wenn ich diesen Link öffne, wird ein Dateidownload gestartet).
    Ziel des Ganzen ist es, dann mit InetGet die Datei herunterzuladen...

    danke für euer Feedback schon im Vorraus

    Einmal editiert, zuletzt von JoEtHeKiLlEr (31. Mai 2007 um 19:10)

  • So, hab dein problem gelöst, als Beispiel lasse ich mir den Link suchen von https://autoit.de/www.google.de wo "Erweiterte Suche" steht:


    [autoit]

    #include <IE.au3>

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

    $oIE = _IECreate ( "http://www.google.de" )

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

    $oLinks = _IELinkGetCollection ($oIE)
    ;Vorsicht: sollte deine seite in einem frame stecken, so musst du erst den richtigen frame da eintragen wo jetzt $oIE steht !!! wie das geht fragst du mich bitte wenn das der fall sein sollte

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

    $iNumLinks = @extended
    MsgBox(0, "Link Info", $iNumLinks & " links found")
    For $oLink In $oLinks
    If $oLink.outerText = "Erweiterte Suche" Then
    MsgBox(0, "Link Info", "das ist dein link:" & $oLink.href)
    exitloop
    endIf
    Next

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

    ;an dieser stelle enthält $oLink deinen Link als Objekt (da die schleife bei deinem link durch exitloop abgebrochen wurde) und du kannst mit $oLink weiterarbeiten

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

    Exit

    [/autoit]


    Greetz, IsleOfTechno

    Einmal editiert, zuletzt von IsleOftechno (31. Mai 2007 um 23:27)

  • also wenn ich dir helfen soll, dann musste schon sagen inwiefern dir meine obigen infos geholfen haben und was jetzt noch nicht klappt ...

    am besten wäre der link zu der entsprechenden seite so dass ich selber mal testen kann ... und nenn mir bitte genau den gemeinten download-link (im quellcode und auf der seite)

  • Zitat

    Original von IsleOftechno
    also wenn ich dir helfen soll, dann musste schon sagen inwiefern dir meine obigen infos geholfen haben und was jetzt noch nicht klappt ...

    am besten wäre der link zu der entsprechenden seite so dass ich selber mal testen kann ... und nenn mir bitte genau den gemeinten download-link (im quellcode und auf der seite)


    was ist denn hier hier überhaupt das jetztige problem????
    das der link im extra frame ist=kein problem....
    sonst was = fast kein problem
    windo$ = "großes" problem ;)
    am besten nochmal beschreibung von dem was du brauchst, was du zurzeit hast und ob das bespielscript geklappt hat....


    snoozer

    PS:es gibt genügend automatisierungsscripte für MS...

  • ok also direkten link kann ich dir Glaub ich nicht geben, wegen dem WGA-Hash aber wenn du den Link nimmst http://www.microsoft.com/downloads/details.aspx?FamilyID=7a81b0cd-a0b9-497e-8a89-404327772e5a&displaylang=de
    dann landest du nach Klicks auf Weiter und Download auf der Seite die ich meine...
    Das Skript gibt mir nicht den Downloadlink...(http//www.microsoftblablabla .exe sondern https://autoit.de/www.microsoft.com/germany aus

    Einmal editiert, zuletzt von JoEtHeKiLlEr (1. Juni 2007 um 18:15)

  • @ snoozer: konnte deinen Post nicht sehen, weil ich auch zu derselben Zeit geschrieben habe^^

    Ich will auf der Seite von Microsoft den direkten Link zum Update bekommen, damit ich es mit InetGet holen kann.(Ich meine die Seite, von der aus der Download automatisch starten würde)

    Sry aber im Moment kann ich's nicht genauer beschreiben

  • also, warum der dir den falschen link gibt, ist ne gute frage, aber ich hab gesehen, dass der quelltext der von dir auf dem screenshot gezeigten seite den richtigen link enthält, ziemlich weit oben in folgendem abschnitt:

    Code
    <script language="javascript">
    if (!g_IsIE)
    {
    	document.write("<META HTTP-EQUIV=\"refresh\" content=\".1; URL=http://download.microsoft.com/download/9/b/8/9b881632-1679-4346-85a8-4959b61f866c/WindowsXP-KB927891-v3-x86-DEU.exe\">");
    }
    </script>

    wenn jede dieser microsoft download seiten so aussieht nach dem muster (anscheinend schon, hab mir 2 andere angeguckt), dann kannste dir ja den link aus dem quelltext filtern, hier das beispiel mit deiner seite:


    [autoit]

    #include <IE.au3>

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

    $oIE = _IECreate ( "http://www.microsoft.com/downloads/thankyou.aspx?familyId=7a81b0cd-a0b9-497e-8a89-404327772e5a&displayLang=de&hash=n3hGpHeN5dHZCAUZJvk06DJnMSjrf6vfOJiyvYEla8PaOyVhUxwdECP%2fjTt7ia0BhPrMG23%2b2TjvTIYjSYT4iw%3d%3d" )

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

    $oLinks = _IELinkGetCollection ($oIE)

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

    $quelltext = _IEDocReadHTML ( $oIE )

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

    $anfang = StringInStr ( $quelltext, "URL=http://download.microsoft.com/" ) + 4

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

    $ende = StringInStr ( $quelltext, '\">")' ) - 8

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

    $derLink = StringMid( $quelltext, $anfang, $ende - $anfang )

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

    msgbox(0,"", $derLink )

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

    $oIE = _IECreate ( $derLink )

    [/autoit]