TCPSend("GET") HTML request!

  • hi zusammen, ich lauf gerade ein wengi gegen die wand und komm nicht weiter...
    ich versuche über ein TCP GET request den sourcecode einer seite zu bekommen auf der Item details für Aion stehen
    die originalseite ist diese:
    http://aion.yg.com/item/x?id=100000276
    mein ziel ist es das feld "Drops" zu filtern damit ich mit den werten arbeiten kann

    bisher ist das mein versuch, allerdings erhalte ich nur einen bruchteil des html codes :(
    mein problem ist hier "maxlen"
    denn wenn ich übertreibe und 50.000 als maxlen eingebe erhalte ich weniger als wenn ich 20.000 nehme o.0
    nur reicht 20.000 leider nicht

    [autoit]


    TCPStartup()

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

    $packet = 'GET http://aion.yg.com/item/bla?id=100000276 HTTP/1.1' & @CRLF & _
    'Host: http://www.aion.yg.com' & @CRLF & _
    'User-Agent: Mozilla/5.0 (Windows; U; Windows NT 5.1; de; rv:1.9.1.5) Gecko/20091102 Firefox/3.5.5 (.NET CLR 3.5.30729)' & @CRLF & _
    'Accept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8' & @CRLF & _
    'Accept-Language: de-de,de;q=0.8,en-us;q=0.5,en;q=0.3' & @CRLF & _
    'Accept-Charset: ISO-8859-1,utf-8;q=0.7,*;q=0.7' & @CRLF & _
    'Keep-Alive: 300' & @CRLF & _
    'Content-Type: application/x-www-form-urlencoded' & @CRLF & _
    'Connection: keep-alive' & @CRLF & @CRLF

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

    $sock = TCPConnect("174.132.33.132", 80)
    TCPSend($sock, $packet)
    do
    $rec = TCPRecv($sock,20048)
    until $rec <> ""
    filewrite(fileopen("tmp.txt",2),$rec)
    TCPShutdown()

    [/autoit]

    2 Mal editiert, zuletzt von azunai (21. Juli 2010 um 15:41)

  • ok scheinbar ziemliche dämlich...

    [autoit]


    TCPStartup()

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

    $packet = 'GET http://aion.yg.com/item/bla?id=100000276 HTTP/1.1' & @CRLF & _
    'Host: http://www.aion.yg.com' & @CRLF & _
    'User-Agent: Mozilla/5.0 (Windows; U; Windows NT 5.1; de; rv:1.9.1.5) Gecko/20091102 Firefox/3.5.5 (.NET CLR 3.5.30729)' & @CRLF & _
    'Accept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8' & @CRLF & _
    'Accept-Language: de-de,de;q=0.8,en-us;q=0.5,en;q=0.3' & @CRLF & _
    'Accept-Charset: ISO-8859-1,utf-8;q=0.7,*;q=0.7' & @CRLF & _
    'Keep-Alive: 500' & @CRLF & _
    'Content-Type: application/x-www-form-urlencoded' & @CRLF & _
    'Connection: keep-alive' & @CRLF & @CRLF

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

    $sock = TCPConnect("174.132.33.132", 80)
    TCPSend($sock, $packet)
    do
    $rec = TCPRecv($sock,25048)
    until $rec <> ""
    do
    $rec &= TCPRecv($sock,25048)
    until @error

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

    filewrite(fileopen("tmp.txt",2),$rec)
    TCPShutdown()

    [/autoit]

    scheint als hätte tcprecv ein maximum

  • TCPRecv wartet nicht darauf, bis Daten ankommen sondern holt die, die schon da sind. Du kannst z.B. auch so was machen (noch nicht getestet):

    Spoiler anzeigen
    [autoit]

    ; $hSocket: Scoket
    ; $iEncoding: 0 -> Automatisch ASCII oder Binär
    ; 1 -> Binär
    ; 2 -> UTF16 Little Endian
    ; 3 -> UTF16 Big Endian
    ; 4 -> UTF8
    ; $iTimeout: Millisekunden, nach denen abgebrochen wird, wenn keine Daten kommen
    Func _TCPRecvTimeout($hSocket, $iEncoding=0, $iTimeout = 1000)
    ; Author: ProgAndy
    Local $t, $ti=-1
    Local $r = TCPRecv($hSocket, 2000, 1)
    If @error Then Return SetError(@error, 0, '')
    While 1
    Sleep(200)
    $t = TCPRecv($hSocket, 2000, 1)
    If @error Then
    ExitLoop
    ElseIf Not $t Then
    If $ti = -1 Then
    $ti = TimerInit()
    ElseIf TimerDiff($ti) >= $iTimeout Then
    ExitLoop
    EndIf
    Else
    $r &= $t
    $ti = -1
    EndIf
    WEnd
    Switch $iEncoding
    Case 0
    $t = BinaryToString($r, 0)
    If StringInStr($t, Chr(0), 1) Then Return $r
    Return $t
    Case 1
    Return $r
    Case 2 To 4
    Return BinaryToString($r, $iEncoding)
    EndSwitch
    EndFunc

    [/autoit]
  • ok doch noch nicht gelöst

    _INetGetSource
    geht bei mir nicht, bekomm immer nur nen empty return

    nächstes problem...

    wenn ich das obige script in einer schleife laufen habe, dann bekomm ich nur beim ersten TCPSend wieder einen return wert, da scheinbar der Socket geclosed wird...

    wenn ich jetzt aber

    allein diese zeilen in einer schleife hab, dauert ein durchlauf bereits 6 sekunden!

    da ich jedoch ein paar tausend seiten abgrasen muss würde es ewig dauern.....

    [autoit]


    $sock = TCPConnect("174.132.33.132", 80)
    TCPSend($sock, $packet)
    if @error then msgbox (0,"TCP error",@error)
    $rec = ""
    Do
    $rec &= TCPRecv($sock, 25048)
    Until @error

    [/autoit]

    jemand ne idee ?

  • Warte nicht auf das Schließen der Verbindung sondern erstelle deinen eigenen Timeout nach einer bestimmten Zeit ohne empfangene Daten. Oder versuche, die Content-Länge aus dem HTTP-Header auszulesen und dann so lange zu emfpangen, bis diese Länge erreicht ist.
    Wenn du nur 1 Datei abragen willst, solltest du außerdem Connection: close statt keep-alive senden.

  • glaub hast mich missverstanden
    ich frage ja verschiedene URLs ab, hier jetzt 5 stk

    bei dem ersten

    [autoit]

    TCPSend($sock, $packet)
    if @error then msgbox (0,"TCP error",@error)
    $rec = ""
    Do
    $rec &= TCPRecv($sock, 25048)
    Until @error

    [/autoit]

    ist alles perfekt, bei jedem weiteren durchlauf dieser zeilen returned TCP Recv nurnoch einen leeren string
    das ist die stelle die ich nicht versteh

    wenn ich jetzt in jeden schleifendurchlauf das $sock = TCPConnect("174.132.33.132", 80) hinzufüge kann ich zwar alle 5 seiten abfragen, aber es dauert ewig

    [autoit]


    $sock = TCPConnect("174.132.33.132", 80)
    For $itemid = 100000001 To 100000005;186000075
    ;$itemid = 100003483 ;empty id
    $packet = 'GET http://aion.yg.com/item/bla?id=' & $itemid & ' HTTP/1.1' & @CRLF & _
    'Host: aion.yg.com' & @CRLF & _
    'User-Agent: Mozilla/5.0 (Windows; U; Windows NT 5.1; de; rv:1.9.2.6) Gecko/20100625 Firefox/3.6.6 (.NET CLR 3.5.30729)' & @CRLF & _
    'Accept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8' & @CRLF & _
    'Accept-Language: de-de,de;q=0.8,en-us;q=0.5,en;q=0.3' & @CRLF & _
    'Accept-Charset: ISO-8859-1,utf-8;q=0.7,*;q=0.7' & @crlf & _
    'Keep-Alive: 115' & @CRLF & _
    'Connection: keep-alive' & @CRLF & @CRLF

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

    TCPSend($sock, $packet)
    if @error then msgbox (0,"TCP error",@error)
    $rec = ""
    Do
    $rec &= TCPRecv($sock, 25048)
    Until @error
    FileWrite($itemid&".txt",$rec)
    next

    [/autoit]


    hier wäre das packet das ich bekomme für den ersten durchlauf

    Spoiler anzeigen
  • Ich hab dich schon richtig verstanden. Until @error --> Du wartest, bis die Verbindung abbricht und geschlossen wird. Das passoert durch das keep-alive aber erst nach ein paar Sekunden ohne Daten.

    Also entweder Conection: close und neues TCPConnect oder nicht bis zum Abbruch der Verbindung warten.

  • ok das leuchtet ein,
    aber wie kann ich dann TCPRecv solange wiederholen bis das erste packet komplett gelesen wurde?
    in dem content header find ich keine länge, leider

  • Hey.

    Du solltest das Packet genau inmitieren, damit es Funktioniert.
    So dürfte es gehen:

    Spoiler anzeigen
    [autoit]

    #cs
    statt: 'GET http://aion.yg.com/item/bla?id=100000276 HTTP/1.1'
    einfach: 'GET /item/bla?id=100000276 HTTP/1.1'
    Also nicht nochmal den Kompletten Link sonder nur die Seite

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

    beim host statt: http://www.aion.yg.com
    einfach: aion.yg.com
    #ce

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

    #cs
    GET /item/bla?id=100000276 HTTP/1.1
    Host: aion.yg.com
    User-Agent: Mozilla/5.0 (Windows; U; Windows NT 6.1; de; rv:1.9.2.6) Gecko/20100625 Firefox/3.6.6
    Accept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8
    Accept-Language: de-de,de;q=0.8,en-us;q=0.5,en;q=0.3
    Accept-Encoding: gzip,deflate
    Accept-Charset: ISO-8859-1,utf-8;q=0.7,*;q=0.7
    Keep-Alive: 115
    Connection: keep-alive
    Cache-Control: max-age=0
    #ce

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

    TCPStartup()

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

    $packet = 'GET /item/bla?id=100000276 HTTP/1.1' & @CRLF & _
    'Host: aion.yg.com' & @CRLF & _
    'User-Agent: Mozilla/5.0 (Windows; U; Windows NT 5.1; de; rv:1.9.1.5) Gecko/20091102 Firefox/3.5.5 (.NET CLR 3.5.30729)' & @CRLF & _
    'Accept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8' & @CRLF & _
    'Accept-Language: de-de,de;q=0.8,en-us;q=0.5,en;q=0.3' & @CRLF & _
    'Accept-Charset: ISO-8859-1,utf-8;q=0.7,*;q=0.7' & @CRLF & _
    'Keep-Alive: 500' & @CRLF & _
    'Content-Type: application/x-www-form-urlencoded' & @CRLF & _
    'Connection: keep-alive' & @CRLF & @CRLF

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

    $sock = TCPConnect("174.132.33.132", 80)
    TCPSend($sock, $packet)
    do
    $rec = TCPRecv($sock,1024)
    until $rec <> ""
    do
    $rec &= TCPRecv($sock,1024)
    until @error Or StringInStr($rec,"</html>"); Wenn </hmtl> ist alles gesendet

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

    filewrite(fileopen("tmp.txt",2),$rec)
    TCPShutdown()

    [/autoit]

    Anbei noch ne kleine Funk von mir :

    Spoiler anzeigen
    [autoit]

    Func _TCP_Send_Request($sTyp, $sHost, $sPage, $sReferer = "", $sCookie = "", $sPost = "", $bWontReturn = 0)
    ;=> Autor: Darter
    Local $sPacket, $Recv,$aCookies, $aRecv, $sHeader, $sBody, $aReturn[3], $sCookies
    TCPStartup()
    $Socket = TCPConnect(TCPNameToIP($sHost),80)

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

    Switch $sTyp
    Case "GET"
    $sPacket = "GET " & $sPage & " HTTP/1.1" & @CRLF & _
    "Host: " & $sHost & @CRLF & _
    "User-Agent: Mozilla/5.0 (Windows; U; Windows NT 6.1; de; rv:1.9.2.4) Gecko/20100611 AskTbUT2V5/3.8.0.12304 Firefox/3.6.4" & @CRLF & _
    "Accept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8" & @CRLF & _
    "Accept-Language: de-de,de;q=0.8,en-us;q=0.5,en;q=0.3" & @CRLF & _
    "Accept-Charset: ISO-8859-1,utf-8;q=0.7,*;q=0.7" & @CRLF & _
    "Keep-Alive: 115" & @CRLF & _
    "Connection: keep-alive" & @CRLF
    If $sReferer <> "" Then $sPacket &= "Referer: " & $sReferer & @CRLF
    If $sCookie <> "" Then $sPacket &= "Cookie: " & $sCookie & @CRLF
    ;$sPacket &= "Cache-Control: max-age=0" & @CRLF & @CRLF
    $sPacket &= @CRLF
    Case "POST"
    $sPacket = "POST " & $sPage & " HTTP/1.1" & @CRLF & _
    "Host: " & $sHost & @CRLF & _
    "User-Agent: Mozilla/5.0 (Windows; U; Windows NT 6.1; de; rv:1.9.2.4) Gecko/20100611 AskTbUT2V5/3.8.0.12304 Firefox/3.6.4" & @CRLF & _
    "Accept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8" & @CRLF & _
    "Accept-Language: de-de,de;q=0.8,en-us;q=0.5,en;q=0.3" & @CRLF & _
    "Accept-Charset: ISO-8859-1,utf-8;q=0.7,*;q=0.7" & @CRLF & _
    "Keep-Alive: 115" & @CRLF & _
    "Connection: keep-alive" & @CRLF
    If $sReferer <> "" Then $sPacket &= "Referer: " & $sReferer & @CRLF
    If $sCookie <> "" Then $sPacket &= "Cookie: " & $sCookie & @CRLF
    $sPacket &= "Content-Type: application/x-www-form-urlencoded" & @CRLF & _
    "Content-Length: " & StringLen($sPost) & @CRLF & @CRLF & $sPost
    Case Else
    Return SetError(1, "", "0")
    EndSwitch

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

    TCPSend($Socket, $sPacket)
    Local $Timeout_Timer = TimerInit()
    Do
    $Recv = TCPRecv($Socket,1024)
    Sleep(150)
    Until $Recv <> "" Or TimerDiff($Timeout_Timer) > 5000

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

    $Timeout_Timer = TimerInit()

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

    Do
    $Recv &= TCPRecv($Socket,1024)
    Sleep(150)
    Until @error Or StringInStr($Recv,"</html>") Or $bWontReturn Or TimerDiff($Timeout_Timer) > 5000

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

    If not $bWontReturn Then
    $aRecv = StringSplit($Recv,@CRLF,1)
    If IsArray($aRecv) Then
    For $i = 1 To $aRecv[0]
    If $aRecv[$i] <> "" Then
    $sHeader &= $aRecv[$i] & @CRLF
    Else
    ExitLoop
    EndIf
    Next
    For $a = $i To $aRecv[0]
    $sBody &= $aRecv[$a] & @CRLF
    Next
    $aReturn[0] = $sHeader
    $aReturn[1] = $sBody
    ;ConsoleWrite($sBody & @CRLF)
    Else
    Return SetError(2,"",0)
    EndIf

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

    If StringInStr($Recv, "Set-Cookie: ") Then
    $aCookies = _StringBetween($Recv,"Set-Cookie: ",";")
    For $i = 0 To $aCookies[0]
    $sCookies &= $aCookies[$i] & "|"
    Next
    $aReturn[2] = StringTrimRight($sCookies,1)
    EndIf

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

    TCPCloseSocket($Socket)
    TCPShutdown()

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

    Return $aReturn
    EndIf
    EndFunc ;==>_TCP_Send_Request

    [/autoit]

    EDIT: Hab die Seite nichtmehr aktualliesiert und so die posts nichtmehr gelsen :wacko:

    Das finden von Rechtschreibfehlern muss sofort und unverzüglich dem Autor gemeldet werden. Das eigennützige Verwenden dieser Rechtschreibfehler ist strengstens untersagt und kann mit Freiheitsenzug bestraft werden.

  • @ Darter, es funktioniert ja ^^
    das problem liegt nur darin dass ich mit einem TCPConnect ne menge seiten abfragen will mir aber dabei die connection zerfuselt ;P

    @ SEuBo, ich weiß nicht warum aber bei mir funktioniert einfach der Autoit befehl nicht ;)
    wahrscheinlich weil irgendwelche IE dateien gebraucht werden, und nichtmal der IE bei mir funzt :)

  • So funktionierts bei mir wunderbar :

    Spoiler anzeigen
    [autoit]

    For $i = 100000001 To 100000005;186000075
    $aRet = _TCP_Send_Request("GET", "aion.yg.com", "/item/bla?id=" & $i)
    FileWrite(@ScriptDir & "\Seite" & $i & ".html",$aRet[1])
    Next

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

    Func _TCP_Send_Request($sTyp, $sHost, $sPage, $sReferer = "", $sCookie = "", $sPost = "", $bWontReturn = 0)
    ;=> Autor: Darter
    Local $sPacket, $Recv,$aCookies, $aRecv, $sHeader, $sBody, $aReturn[3], $sCookies
    TCPStartup()
    $Socket = TCPConnect(TCPNameToIP($sHost),80)

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

    Switch $sTyp
    Case "GET"
    $sPacket = "GET " & $sPage & " HTTP/1.1" & @CRLF & _
    "Host: " & $sHost & @CRLF & _
    "User-Agent: Mozilla/5.0 (Windows; U; Windows NT 6.1; de; rv:1.9.2.4) Gecko/20100611 AskTbUT2V5/3.8.0.12304 Firefox/3.6.4" & @CRLF & _
    "Accept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8" & @CRLF & _
    "Accept-Language: de-de,de;q=0.8,en-us;q=0.5,en;q=0.3" & @CRLF & _
    "Accept-Charset: ISO-8859-1,utf-8;q=0.7,*;q=0.7" & @CRLF & _
    "Keep-Alive: 115" & @CRLF & _
    "Connection: keep-alive" & @CRLF
    If $sReferer <> "" Then $sPacket &= "Referer: " & $sReferer & @CRLF
    If $sCookie <> "" Then $sPacket &= "Cookie: " & $sCookie & @CRLF
    ;$sPacket &= "Cache-Control: max-age=0" & @CRLF & @CRLF
    $sPacket &= @CRLF
    Case "POST"
    $sPacket = "POST " & $sPage & " HTTP/1.1" & @CRLF & _
    "Host: " & $sHost & @CRLF & _
    "User-Agent: Mozilla/5.0 (Windows; U; Windows NT 6.1; de; rv:1.9.2.4) Gecko/20100611 AskTbUT2V5/3.8.0.12304 Firefox/3.6.4" & @CRLF & _
    "Accept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8" & @CRLF & _
    "Accept-Language: de-de,de;q=0.8,en-us;q=0.5,en;q=0.3" & @CRLF & _
    "Accept-Charset: ISO-8859-1,utf-8;q=0.7,*;q=0.7" & @CRLF & _
    "Keep-Alive: 115" & @CRLF & _
    "Connection: keep-alive" & @CRLF
    If $sReferer <> "" Then $sPacket &= "Referer: " & $sReferer & @CRLF
    If $sCookie <> "" Then $sPacket &= "Cookie: " & $sCookie & @CRLF
    $sPacket &= "Content-Type: application/x-www-form-urlencoded" & @CRLF & _
    "Content-Length: " & StringLen($sPost) & @CRLF & @CRLF & $sPost
    Case Else
    Return SetError(1, "", "0")
    EndSwitch

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

    TCPSend($Socket, $sPacket)
    Local $Timeout_Timer = TimerInit()
    Do
    $Recv = TCPRecv($Socket,1024)
    Until $Recv <> "" Or TimerDiff($Timeout_Timer) > 5000

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

    $Timeout_Timer = TimerInit()

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

    Do
    $Recv &= TCPRecv($Socket,1024)
    Until @error Or StringInStr($Recv,"</html>") Or $bWontReturn Or TimerDiff($Timeout_Timer) > 5000

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

    If not $bWontReturn Then
    $aRecv = StringSplit($Recv,@CRLF,1)
    If IsArray($aRecv) Then
    For $i = 1 To $aRecv[0]
    If $aRecv[$i] <> "" Then
    $sHeader &= $aRecv[$i] & @CRLF
    Else
    ExitLoop
    EndIf
    Next
    For $a = $i To $aRecv[0]
    $sBody &= $aRecv[$a] & @CRLF
    Next
    $aReturn[0] = $sHeader
    $aReturn[1] = $sBody
    ;ConsoleWrite($sBody & @CRLF)
    Else
    Return SetError(2,"",0)
    EndIf

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

    If StringInStr($Recv, "Set-Cookie: ") Then
    $aCookies = StringRegExp($Recv,"Set-Cookie:([^;]+)")
    For $i = 0 To $aCookies[0]
    $sCookies &= $aCookies[$i] & ";"
    Next
    $aReturn[2] = StringTrimRight($sCookies,1)
    EndIf

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

    TCPCloseSocket($Socket)
    TCPShutdown()

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

    Return $aReturn
    EndIf
    EndFunc ;==>_TCP_Send_Request

    [/autoit]

    EDIT: Wieso ist den meine FUnc nicht so wie ich sie letztens hatte. Da hats mir bei dem Stromausfall letztens tatsächlich meine änderungngen nicht gespeichert :wacko:

    mfg Darter

    Das finden von Rechtschreibfehlern muss sofort und unverzüglich dem Autor gemeldet werden. Das eigennützige Verwenden dieser Rechtschreibfehler ist strengstens untersagt und kann mit Freiheitsenzug bestraft werden.

  • Darf man fragen warum?
    Von der geschiwindigkeit macht das mit sicherheit nichts aus, denn die Seite muss so oder so immer neu Geladen werden, da es ja jedes mal eine andere ist.
    Deshalb verstehich das jetzt nicht ganz

    Das finden von Rechtschreibfehlern muss sofort und unverzüglich dem Autor gemeldet werden. Das eigennützige Verwenden dieser Rechtschreibfehler ist strengstens untersagt und kann mit Freiheitsenzug bestraft werden.

  • ja die seite wird geladen, aber das nur traffic der bei meiner anbindung nicht wirklich von bedeutung ist

    warum?, ich möchte für meinen aion server die droplist diesmal retail like automatsich erstellen, und nicht nur geschätze und fehlerhafte einträge haben ;)
    und ich glaub das geht jedem aion server momentan so

  • ok ich brauch für 47.000 seiten die geparsed werden jetzt 10 std ;P
    also 1.3 seiten pro sekunde.....
    laaahm


    Naja aber du musst ja jetzte seite Laden um sie Speichern zu können.

    Zitat

    ja die seite wird geladen, aber das nur traffic der bei meiner anbindung nicht wirklich von bedeutung ist


    Naja su willst dan den Quellcode ran richtig? und nichts anders wird über TCPRecv() empfangen

    Das finden von Rechtschreibfehlern muss sofort und unverzüglich dem Autor gemeldet werden. Das eigennützige Verwenden dieser Rechtschreibfehler ist strengstens untersagt und kann mit Freiheitsenzug bestraft werden.

  • Zitat

    also 1.3 seiten pro sekunde.....
    laaahm

    ggf solltest du mal deinen Parser überarbeiten....mit einer 6000er Leitung dauert der Download von 100 verschiedenen Seiten zw 0,4 und 0,5 Sekunden/Seite incl. Speichern (5ms).
    Bleiben 800ms zum parsen.
    Bei einer durchschnittlichen Größe von 30Kb pro Download musst du eigentlich den Quelltext von Hand durchsuchen, so langsam kann kein Script sein.....
    Wobei ich noch "gemütlich" per Inetread gelesen habe....und gerade bei dieser Aufgabe das Downloaden und Parsen wundervoll in 2 oder mehrere "Threads" aufzuteilen ist...