Links aus Webseite auslesen und in ein Array chriben

  • Hab mal die Beispielfuntion von _IELinkGetCollection etwas umgebaut, aber irgendwie ist das Array leer.

    [autoit]


    #include <IE.au3>
    #include <Array.au3>

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

    $oIE = _IECreate("http://www.google.de",0,1,1,1)
    $oLinks = _IELinkGetCollection ($oIE)
    $iNumLinks = @extended
    MsgBox(0, "Link Info", $iNumLinks & " links found")

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

    Dim $arLinks[$iNumLinks]

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

    For $oLink In $oLinks
    _ArrayAdd($arLinks, $oLink.href)
    Next

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

    _ArrayDisplay($arLinks,"Links")

    [/autoit]

    Wo liegt mein Fehler? Danke schonmal

    2 Mal editiert, zuletzt von dasT17 (7. Oktober 2008 um 19:19)

  • Hab noch keine Erfahrungen mit den Internet-Funktionen, kann Dir also nicht die Lösung sagen ....

    Bei mir stehen die 27 Links aber im Array, allerdings erst ab Stelle 27(beginnend bei 0), also ab der Anzahl der vom Skript erkannten Links!
    Scheinst in der For-Next-Schleife einen Fehler beim Startparameter zu haben.

    - Rasta -

  • [autoit]

    #include <IE.au3>
    #include <Array.au3>

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

    $oIE = _IECreate("http://www.google.de",1,1,1,1)
    $oLinks = _IELinkGetCollection ($oIE)
    $iNumLinks = @extended
    ;MsgBox(0, "Link Info", $iNumLinks & " links found")

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

    Dim $arLinks[1] = [$iNumLinks]

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

    For $oLink In $oLinks
    _ArrayAdd($arLinks, $oLink.href)
    Next

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

    _ArrayDisplay($arLinks,"Links")
    if @error Then Msgbox(0,"", @error)

    [/autoit]


    das liegt an der Funktion _ArrayAdd, wenn du 27 Einträge definierst fügt ArrayAdd einfach die neuen hintenran

  • ok habs inzwischen auch, das Array darf zu Beginn nur 1 groß sein.

    Noch ne andere Frage: gibts ne möglichkeit den String des Links in dieses Format zu kriegen: http%3A%2F%2Fwww.google.de%2F, außer ihn für jedes Sonderzeichen durch ne durch ne StringReplace Abfrage zu schicken?

  • THX - genau was ich suchte

    ...

    hmm hab mich wohl zu früh gefreut, irgendwie klappts nicht.

    Die _UnicodeURLEncode gibt mir immer die normale URL aus

    Spoiler anzeigen
    [autoit]


    $oIE = _IECreate("http://www.googgle.de",0,1,1,1)
    $oLinks = _IELinkGetCollection ($oIE)
    $iNumLinks = @extended
    MsgBox(0, "Link Info", $iNumLinks & " links found")

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

    Dim $arLinks[1]

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

    For $oLink In $oLinks
    $newLink = _UnicodeURLEncode ( $oLink.href )
    _ArrayAdd($arLinks, $newLink)

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

    Next

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

    _ArrayDisplay($arLinks,"Links")

    [/autoit]

    Die _URLEncode gibt mit 0, 2 bzw. nix al Parameter die normale URL aus, mit 1 encodiert sie alles, also auch die normalen buchstaben

    Spoiler anzeigen
    [autoit]


    $oIE = _IECreate("http://www.googgle.de",0,1,1,1)
    $oLinks = _IELinkGetCollection ($oIE)
    $iNumLinks = @extended
    MsgBox(0, "Link Info", $iNumLinks & " links found")

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

    Dim $arLinks[1]

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

    For $oLink In $oLinks
    $newLink = _URLEncode ( $oLink.href )
    _ArrayAdd($arLinks, $newLink)

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

    Next

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

    _ArrayDisplay($arLinks,"Links")

    [/autoit]

    Einmal editiert, zuletzt von dasT17 (7. Oktober 2008 um 19:19)