lange ladezeit

  • hallo, ich hab hier ein stückchen von meinem programm: ziel ist es, alle links einer seite zu öffnen, bei denen 128 in der url vorkommt

    [autoit]

    $aLinkArray = _FFGetLinks($Socket, "href")
    For $i = 0 To Ubound($aLinkArray) -1
    If StringInStr($aLinkArray[$i],"128") Then _FFTabAdd($Socket,$aLinkArray[$i])
    Next

    [/autoit]


    leider dauert das laden sehr lange er empfängt immer 93, sendet 93, empfängt wieder 93 usw

    Spoiler anzeigen


    __FFSend: content.document.location.href="http://mitglieder.dooyoo.de/kinder-jugendbuecher/mein-erstes-fuehlbuch-monika-neubacher-fesser/1287548/"
    __FFRecv: http://mitglieder.dooyoo.de/kinder-jugendb…fesser/1287548/
    __FFSend: document.getElementById('statusbar-icon').value
    __FFRecv: 0
    __FFSend: document.getElementById('statusbar-icon').value
    __FFRecv: 90
    __FFSend: document.getElementById('statusbar-icon').value
    __FFRecv: 90
    __FFSend: document.getElementById('statusbar-icon').value
    __FFRecv: 97
    __FFSend: document.getElementById('statusbar-icon').value
    __FFRecv: 97
    __FFSend: document.getElementById('statusbar-icon').value
    __FFRecv: 97
    __FFSend: document.getElementById('statusbar-icon').value
    __FFRecv: 97
    __FFSend: document.getElementById('statusbar-icon').value
    __FFRecv: 97
    __FFSend: document.getElementById('statusbar-icon').value


    das ganze dauert ewig. da es aber eigentlich darum geht, den arbeitsschritt zu beschleunigen suche ich nun nach hilfe.
    schon einmal danke im Vorraus!

    Einmal editiert, zuletzt von proanti (25. März 2009 um 18:06)

  • Ja
    1) die aktuelle Version der FF.au3 herunterladen, deine scheint "etwas" hinten dran zu sein.
    2) Idee:

    [autoit]

    #include <Array.au3>
    #include <FF.au3>

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

    If _FFConnect() Then
    $a = _FFXPath("//a[contains(@href,'128')]","href",7)
    _ArrayDisplay($a)
    exit

    [/autoit]


    damit hast schon mal alle passenden URLs.

    [EDIT]
    Die "ewige" Ladezeit hat sich in den aktuellen Versionen erledigt.

    2 Mal editiert, zuletzt von Stilgar (25. März 2009 um 20:03)

  • Ganz einfach:

    [autoit]

    If _FFConnect() Then
    $a = _FFXPath("//a[contains(@href,'user')]", "href", 7)
    For $i = 0 To $a[0]
    _FFTabAdd($a[$i])
    Next
    EndIf

    [/autoit]

    evtl. noch ein Sleep in die Schleife rein und dann kommts drauf an ob du auch so viele Tabs aufmachen kannst.

    Grüße
    Stilgar

  • tut mir leid wegen den dummen fragen :( . aber dann kommt das:

    Spoiler anzeigen

    >"F:\autoit\AutoIt3\SciTE\..\autoit3.exe" /ErrorStdOut "C:\Dokumente und Einstellungen\Julian\Desktop\yopi1.au3"
    _FFConnect: OS: WIN_XP WIN32_NT 2600 Service Pack 3
    _FFConnect: AutoIt: 3.3.0.0
    _FFConnect: FF.au3: 0.5.0.1b-2
    _FFConnect: IP: 127.0.0.1
    _FFConnect: Port: 4242
    _FFConnect: Delay: 2ms
    _FFConnect: Socket: 1716
    __FFSend: navigator.userAgent
    __FFRecv: Mozilla/5.0 (Windows; U; Windows NT 5.1; de; rv:1.9) Gecko/2008052906 Firefox/3.0
    _FFConnect: Browser: Mozilla/5.0 (Windows; U; Windows NT 5.1; de; rv:1.9) Gecko/2008052906 Firefox/3.0
    __FFSend: try{with(FF_AutoItScript){this.obj=window.content.frames["top"].document.evaluate("//a[contains(@href,'user')]",content.document,null,XPathResult.ORDERED_NODE_SNAPSHOT_TYPE,null);this.tmp=this.obj.snapshotLength;for(var i=0;i<this.obj.snapshotLength;i++){this.tmp+="FF152"+this.obj.snapshotItem(i).href;};this.tmp;}}catch(e){'_FFXPath_Error: ' +e;};
    __FFRecv: 0
    _FFOpenURL ==> Invalid data type: http://0
    >Exit code: 0 Time: 1.821

  • Ja das heißt es wurden keine passenden Links gefunden.

    Code
    __FFSend: try{with(FF_AutoItScript){this.obj=window.content.frames["top"].document.evaluate("//a[contains(@href,'user')]",content.document,null,XPathResult.ORDERED_NODE_SNAPSHOT_TYPE,null);this.tmp=this.obj.snapshotLength;for(var i=0;i<this.obj.snapshotLength;i++){this.tmp+="FF152"+this.obj.snapshotItem(i).href;};this.tmp;}}catch(e){'_FFXPath_Error: ' +e;};
    __FFRecv: 0

    Hat es denn mit ArrayDisplay funktioniert?

    Der Fehler kam von meiner falschen Schleife, die muß bei 1 starten:

    [autoit]


    For $i = 1 To $a[0]
    _FFTabAdd($a[$i])
    Next

    [/autoit]


    wird aber am Ergebnis nichts ändern.

  • hmm, schön blöd von mir
    $a = _FFXPath("//a[contains(@href,'128')]", "href", 7)
    wir hatten ja nach
    $a = _FFXPath("//a[contains(@href,'user')]", "href", 7)
    gesucht xD.
    vielen dank!!! jetzt funktioniert es