Hallo, ich möchte gerne mehrere Seiten auf einmal downloaden, das heißt wenn ich z.B. 10 Profile habe, sollen diese Gleichzeitig gedownloadet werden und nicht nacheinander. Weil ein Profilaufruf ca 5 Sekunden verbucht und nacheinander es somit dann 50 Sekunden wären.
[autoit]
#include <WinHTTP.au3>
#include <Array.au3>
#include <String.au3>
; Aufruf der ersten Profil Seite
$link_part1 ='/portal/site/cnc//stats?persona=CC_SUB:'
$nickname = 'Mustermann'
$resource = $link_part1 & $nickname
$open = _WinHttpOpen("Mozilla/5.0 (Windows; U; Windows NT 5.1; de; rv:1.9.2.15) Gecko/20110303 Firefox/3.6.15")
$connect = _WinHttpConnect($open,"portal.commandandconquer.com" )
$request = _WinHttpOpenRequest($connect, "GET", $resource, "HTTP/1.1", "portal.commandandconquer.com" )
_WinHttpSendRequest($request)
If _WinHttpReceiveResponse($request) Then
$HtmLSourceCode = _WinHttpReadData($request, 0, 34000) ; 34.000 kb ist 1/5 der Webseite
_WinHttpCloseHandle($request)
EndIf
; Alle Nicknamen mit einer Regex ermitteln
$aArrayRegExWithSmurfsInside = StringRegExp($HtmLSourceCode,'.portal.site.cnc..stats.*persona.CC.SUB.3a(.*).game.', 3)
; Anzahl der gefundenen Nicknamen
$aQuantity = ubound($aArrayRegExWithSmurfsInside)
$aArrayQuantity = $aQuantity-1
For $i = 0 to $aArrayQuantity Step 1
$link_part1 ='/portal/site/cnc//stats?persona=CC_SUB:'
$resource = $link_part1 & $aArrayRegExWithSmurfsInside[$i]
$open = _WinHttpOpen("Mozilla/5.0 (Windows; U; Windows NT 5.1; de; rv:1.9.2.15) Gecko/20110303 Firefox/3.6.15")
$connect = _WinHttpConnect($open,"portal.commandandconquer.com" )
$request = _WinHttpOpenRequest($connect, "GET", $resource, "HTTP/1.1", "portal.commandandconquer.com" )
_WinHttpSendRequest($request)
If _WinHttpReceiveResponse($request) Then
$HtmLSourceCode = _WinHttpReadData($request, 0, 34000) ; 34.000 kb ist 1/5 der Webseite
_WinHttpCloseHandle($request)
EndIf
Next
Mit Firefox kann ich jene 10 Seiten innerhalb von Sekunden dowloaden, aber wie geht das mit Autoit ?
Dazu dachte ich, das ich jeden request in einem array ablege muß, was bei mir als anfänger aber noch nicht funktionierte.
$aArrayQuantity = $aQuantity-1
For $i = 0 to $aArrayQuantity Step 1
Dim $aRequest[$aArrayQuantity]
Dim $aHtmlSourceCode[$aArrayQuantity]
$link_part1 ='/portal/site/cnc//stats?persona=CC_SUB:'
$resource = $link_part1 & $aArrayRegExWithSmurfsInside[$i]
$open = _WinHttpOpen("Mozilla/5.0 (Windows; U; Windows NT 5.1; de; rv:1.9.2.15) Gecko/20110303 Firefox/3.6.15")
$connect = _WinHttpConnect($open,"portal.commandandconquer.com" )
;Zeile (13) : ==> Subscript used with non-Array variable
$request[$i] = _WinHttpOpenRequest($connect, "GET", $resource, "HTTP/1.1", "portal.commandandconquer.com" )
_WinHttpSendRequest($request[$i])
If _WinHttpReceiveResponse($request[$i]) Then
$aHtmLSourceCode[$i] = _WinHttpReadData($request[$i], 0, 34000) ; 34.000 kb ist 1/5 der Webseite
_WinHttpCloseHandle($request[$i])
EndIf
Next
Und auch wenn ich jetzt jeden request bereits in nen array drinn hätte, müßte ich ja noch
anschließend
ausführen, so das das Script 10 Seiten auf einmal downloadet und nicht nacheinander.
Ich hoffe mir kann hier jemand weiterhelfen ![]()