Probleme mit empfangen von Website

  • VB6

Es gibt 13 Antworten in diesem Thema. Der letzte Beitrag () ist von HenHen.

    Probleme mit empfangen von Website

    Hallo,

    ich habe folgendes Problem. Ich versuche mit dem INet Steuerelement und der OpenUrl Anweisung eine bestimmte Website zu bekommen. Es kommen auch Daten an, welche ich in einer Variable speicher, doch mehr als die Hälfte des Quelltextes fehlt. Bei anderen Seiten funktioniert es super, das ist das seltsame daran. Könnte das ganze irgendwie durch php verhindert sein? Wenn ja, wie kann ich es am geschicktesten umgehen?

    ps: Ich brauche den Quelltext einer bestimmten Seite um dort etwas auszulesen.

    Danke im Voraus,
    HenHen
    Ich könnte mir höchstens vorstellen, dass das INet Steuerelement nur eine bestimmte Datenmenge lesen kann. Hast du das Ergebnis denn auch in einer normalen String-Variable gespeichert?

    Ansonsten musst du es mit Winsock versuchen, das ist zwar komplizierter, aber funktioniert ganz sicher.
    Besucht auch mein anderes Forum:
    Das Amateurfilm-Forum
    Winsock:

    - Verbindung zu Webserver aufbauen (Port 80): .Connect "www.url.de", 80
    - Befehl zum Erhalt der Website senden: .SendData "... GET ..." (da müsste nun der Befehl hin, den auch Browser immer senden, irgendeine Zeichenfolge mit "GET")
    - Daten empfangen: DataArrival-Ereignis, .GetData ...
    Besucht auch mein anderes Forum:
    Das Amateurfilm-Forum
    Private Sub Form_Load()
    Winsock1.connect "www.deinhost.de", 80
    End Sub
    Dann musst du Folgendes Senden (mit Winsock.Senddata)

    GET / HTTP/1.1 'hinter / deinen Pfad, aber ohne Host
    Accept: */*
    Host: www.deinhost.de
    Connection: Close oder Keep-Alive


    Felix Kröger
    PS: Hinter der Connection-Zeile nicht nur 1x vbcrlf, sondern 2x
    War das ganze vieleicht so gemeint?

    Private Sub Command1_Click()
    ' connecten
    Winsock1.Connect "www.hornissen-rettung.de", 80
    End Sub

    Private Sub Command2_Click()
    ' Anfrage senden
    Winsock1.SendData "GET /index.html HTTP/1.1"
    End Sub

    Private Sub Winsock1_DataArrival(ByVal bytesTotal As Long)
    ' Daten empfangen
    Dim strdata As String
    Winsock1.GetData (strdata)
    MsgBox strdata
    End Sub

    Ergänzung:

    Scheine mich wohl geirrt zu haben mit den anderen Webseiten. Hab grad aus Verzweiflung noch weitere Webseiten versucht, die dieses Mal alle !NICHT! komplett ankamen. Dann hab ich mir mal die Länge der angekommenen Daten angeschaut (mit len()) und festgestellt, dass alle Daten die ankommen immer nur knapp über 1000 Zeichen haben. Hilft das vieleicht irgendwie weiter?
    Hier nochmal der Quellcode, den ich benutzt habe:

    Private Sub Command1_Click()
    Label1.Caption = Inet1.OpenURL("http://www.moviez-at-germany.de/index/forum/index.php")
    MsgBox Len(Label1.Caption)
    End Sub


    Versuche es doch mal wie ich ganz am Anfang geschrieben habe mit einer String-Variable. Eventuell passen in das Label nur 1.000 Zeichen rein.

    Also:

    Private Sub Command1_Click()
    dim s as string
    s = Inet1.OpenURL("http://www.moviez-at-germany.de/index/forum/index.php")
    End Sub
    Besucht auch mein anderes Forum:
    Das Amateurfilm-Forum
    Hm, das macht leider auch keinen Unterschied. Hatte es auch schonmal mit einem Textfeld versucht ... ohne neue Ergebnisse. Normal müssten es bei der angegebenen Seite mehr als 60.000 Zeichen sein. Angegeben werden mir aber immer nur 1047 (bei dieser).
    Also ich kann mit dem Microsoft Internet Transfer Control beliebig lange Websites auslesen, habe ich soeben getestet. Installiere mal das neueste Service Pack (SP 5).
    Besucht auch mein anderes Forum:
    Das Amateurfilm-Forum