hallo
ich habe ein relativ großes problem.
Ich habe (aus langeweile und zum lernen) einen crawler geschrieben. Dieser läd nur den quellcode der startseite einer internetadresse runter. Funktioniert soweit ganz gut. Nur ab und zu bleibt er einfach bei einer seite 'hängen'.
Hier der Originalcode für den Download.
Option Explicit
Private Declare Function InternetOpen Lib "wininet" Alias _
"InternetOpenA" (ByVal sAgent As String, ByVal _
lAccessType As Long, ByVal sProxyName As String, ByVal _
sProxyBypass As String, ByVal lFlags As Long) As Long
Private Declare Function InternetCloseHandle Lib "wininet" _
(ByVal hInet As Long) As Integer
Private Declare Function InternetReadFile Lib "wininet" _
(ByVal hFile As Long, ByVal sBuffer As String, ByVal _
lNumBytesToRead As Long, lNumberOfBytesRead As Long) _
As Integer
Private Declare Function InternetOpenUrl Lib "wininet" Alias _
"InternetOpenUrlA" (ByVal hInternetSession As Long, _
ByVal lpszUrl As String, ByVal lpszHeaders As String, _
ByVal dwHeadersLength As Long, ByVal dwFlags As Long, _
ByVal dwContext As Long) As Long
Const INTERNET_OPEN_TYPE_DIRECT = 1
Const INTERNET_OPEN_TYPE_PROXY = 3
Const INTERNET_FLAG_RELOAD = &H80000000
Const UserAgent = "Wininet Test"
Private Sub Command1_Click()
Dim l&, Buffer$, hOpen&, hFile&, Result&
l = 50000
Buffer = Space(l)
Text1.Text = ""
DoEvents
MousePointer = vbHourglass
hOpen = InternetOpen(UserAgent, INTERNET_OPEN_TYPE_DIRECT, _
vbNullString, vbNullString, 0)
hFile = InternetOpenUrl(hOpen, Text2.Text, vbNullString, _
ByVal 0&, INTERNET_FLAG_RELOAD, _
ByVal 0&)
Call InternetReadFile(hFile, Buffer, l, Result&)
Call InternetCloseHandle(hFile)
Call InternetCloseHandle(hOpen)
Buffer = Left$(Buffer, Result)
Text1.Text = Buffer
MousePointer = vbDefault
End Sub Ich habe nun auch schonmal gesucht. Irgendwer hat mal was von einer einstellung namens "INTERNET_OPTION_CONNECT_TIMEOUT" geschrieben. Leider wußte er auch nicht mehr darüber.
Kann mir jemand helfen da nen timeout einzubauen. Geht es überhaupt? Oder gibts noch eine andere möglichkeit an den quellcode zu kommen (ohne Webbrowser-control!)
danke im vorraus.
viele grüße
HeAdLeSs |