int seite öffnen text auslesen und ausgeben

Übersicht BlitzBasic Allgemein

Neue Antwort erstellen

dominik

Betreff: int seite öffnen text auslesen und ausgeben

BeitragMo, Aug 23, 2004 14:22
Antworten mit Zitat
Benutzer-Profile anzeigen
also wie gesagt des teil soll internetseiten öffnen und allen text denn es darauf findet ausgeben. komischerweise hab ich bisher nur eine einzige seite gefunden bei der es funktionirt. "www.inselkampf.de" bei allen anderen die ich bisher ausprobiert habe gehts leider nicht. aber nachdem bei einer geht kanns ja grundsätzlihc nicht so falsch sein.
Code: [AUSKLAPPEN]
window = CreateWindow("Fenster", 200, 200, 500, 500, Desktop(), 1)
Global inhalt_ausgabe = CreateTextArea(10, 50, 480, 400, window)
Global start_button = CreateButton("Start", 230, 20, 100, 20, window)
Global adressen_eing = CreateTextField(10, 20, 200, 20, window)
Global status_label = CreateLabel("", 350, 20, 100, 20, window)


Repeat
  If EventSource() = start_button Then
    adresse$ = TextFieldText(adressen_eing)
    seite_durchsuchen(adresse$)
  EndIf
Until WaitEvent() = $803

Function seite_durchsuchen(adresse$)
  AddTextAreaText inhalt_ausgabe, "Durchsuchte Seite:  " + adresse$
  SetGadgetText status_label, "Suche"

  speicher_datei = WriteFile("antwort_speicher.dat")
  stream = OpenTCPStream(adresse$, 80) 

  WriteLine stream, "hallo"
  antwort$ = ReadLine$(stream)
  If antwort$ > 0 Then WriteLine speicher_datei, antwort$
  CloseFile speicher_datei


  gefudenewoerter = WriteFile("gefudenewörter.dat")
  speicher_datei = ReadFile("antwort_speicher.dat")
  Repeat
    zeile$ = ReadLine(speicher_datei)
    gesamt_anzahl = Len(zeile$)
    DebugLog gesamt_anzahl
    For i = 0 To gesamt_anzahl
      gelesener_b$ = Mid(zeile$, i, 1)
      If gelesener_b$ = "<" Then befehl_speicher = True
      If gelesener_b$ = ">" Then
        befehl_speicher = False
        WriteLine(gefudenewoerter, Chr$(13) + Chr$(10))
      EndIf
      If befehl_speicher = False And gelesener_b$ <> ">" Then WriteLine(gefudenewoerter, gelesener_b$)
    Next
  Until Eof(speicher_datei)
  CloseFile(gefudenewoerter)

  gefudenewoerter = ReadFile("gefudenewörter.dat")
  Repeat
    neue_zeile$ = ReadLine(gefudenewoerter)
    If neue_zeile$ = "" And leerzeile_speicher = 0 Then
      AddTextAreaText inhalt_ausgabe, Chr$(13) + Chr$(10)
      leerzeile_speicher = 1
    EndIf
    If neue_zeile$ > "" Then
      AddTextAreaText inhalt_ausgabe, neue_zeile$
      leerzeile_speicher = 0
    EndIf
  Until Eof(gefudenewoerter)
  CloseFile(gefudenewoerter)

  SetGadgetText status_label, ""
End Function


für alle die kein Blitz+ habe gibts hier noch die exe:http://www.speedsurf.to/dominikirimi/intseiteauslesen.exeo/dominikirimi/intseiteauslesen.exe


PS: ich weiß das die zeile "WriteLine stream, "hallo"" eigentlich schmarn si aber wenn ich #
GET /"+req$+" HTTP/1.1"
Host: "+url$
User-Agent: score"
Accept: */*"
""
hinschick dann bekomm ich nur ein
HTTP/1.1 200 OK
zurück und damit kann ich noch weniger anfangen.
 

sdjh

BeitragMo, Aug 23, 2004 16:17
Antworten mit Zitat
Benutzer-Profile anzeigen
ich weiß jetzt nicht, was du als eingabe machst, aber HTTP funktioniert wie folgt:

stream=openTCPStream("www.blitzforum.de",80)
if stream
writeline stream, "GET http://www.blitzforum.de HTTP/1.0"
writeline stream,""
endif

worauf du achten musst:
bei OpenTCPStream immer nur den Server angeben. Ohne http, ohne irgendwelche folgenden Verzeichnisse oder Dateien.

Und wenn du 200OK kriegst, dann sind das diese SubDomains. Da kannst du aber die absolute URL herauslesen die dann ansteuern

dominik

BeitragMo, Aug 23, 2004 16:43
Antworten mit Zitat
Benutzer-Profile anzeigen
ja da kommt dann "HTTP/1.1 200 OK" wo kann ich da die subdomains herauslesen?

bei deinem beispiel hab ich jetz des zurück bekommen:
HTTP/1.1 500 Internal Server Error

oder bei web.de des:
HTTP/1.1 302 Found
  • Zuletzt bearbeitet von dominik am Di, Aug 24, 2004 22:35, insgesamt einmal bearbeitet

dominik

BeitragDi, Aug 24, 2004 22:35
Antworten mit Zitat
Benutzer-Profile anzeigen
mein gott irgentwer wird mir des doch jetzt auch ma erklären können, außer mir kann des doch hier anscheinend jeder.
ich checks halt net.
 

lettorTrepuS

BeitragMi, Aug 25, 2004 0:35
Antworten mit Zitat
Benutzer-Profile anzeigen
-aus Sicherheitsgründen gelöscht- Diese Information ist mit Ihrer Sicherheitsfreigabe leider nicht erhältlich, Bürger.

dominik

BeitragSa, Aug 28, 2004 23:27
Antworten mit Zitat
Benutzer-Profile anzeigen
so irgentwann raffts jeder selbst ich.
so also des kommt dann zurück: z.B. bei www.heise.de

Zitat:
HTTP/1.1 400 Bad Request
Date: Sat, 28 Aug 2004 21:23:40 GMT
Server: Apache/1.3.29
Connection: close
Content-Type: text/html; charset=iso-8859-1

<!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML 2.0//EN">
<HTML><HEAD>
<TITLE>400 Bad Request</TITLE>
</HEAD><BODY>
<H1>Bad Request</H1>
Your browser sent a request that this server could not understand.<P>
The request line contained invalid characters following the protocol string.<P>
<P>
<HR>
<ADDRESS>Apache/1.3.29 Server at www.heise.de Port 80</ADDRESS>
</BODY></HTML>

400 Bad Request
Bad Request
Your browser sent a request that this server could not understand.
The request line contained invalid characters following the protocol string.
Apache/1.3.29 Server at www.heise.de Port 80


aber des is nicht so ganz des was ich haben wollte, außerdem steht ja auch hier (wie bei jedem server den ich bisherausprobiert habe) drunnter "a request that this server could not understand" ??
was versteht der da nicht?
 

David

BeitragSa, Aug 28, 2004 23:44
Antworten mit Zitat
Benutzer-Profile anzeigen
Hi!

Code: [AUSKLAPPEN]

Graphics 640, 480, 32

Const FILE_NAME$  = "http://www.google.de/index.html"
Const DST_FILE$   = "c:\test.htm"
Const BUFFER_SIZE = 65536

LoadWebFile( FILE_NAME, DST_FILE )

WaitKey
End

Function LoadWebFile( srcFile$, dstFile$ )
   Local TCPStream, tmpPos, dataSize, tmpBank
   Local Host$ = "", HTTPHeader$ = ""
   Local Buffer = BUFFER_SIZE

   If ( Left( srcFile$, 7 ) = "http://" ) srcFile$ = Right( srcFile$, Len( srcFile$ ) - 7 )
   
   tmpPos = Instr( srcFile$, "/" )
   
   If ( tmpPos ) Then
      Host$ = Left( srcFile$, tmpPos - 1 )
      srcFile = Right( srcFile$, Len( srcFile ) - tmpPos + 1 )
   Else
      Host$ = srcFile$
      srcFile$ = "/"
   End If
   
   TCPStream = OpenTCPStream( Host$, 80 )
   
   If ( Not TCPStream ) Then
      RuntimeError( "Fehler beim verbinden zu: " + Host$ )
   End If
   
   WriteLine( TCPStream, "GET " + srcFile$ + " HTTP/1.1" )
   WriteLine( TCPStream, "Host: " + Host$ )
   WriteLine( TCPStream, "Accept: */*" )
   WriteLine( TCPStream, Chr$( 10 ) )
   
   Repeat
      HTTPHeader$ = ReadLine( TCPStream )

      If ( Left( HTTPHeader$, 16 ) = "Content-Length: " ) Then
         dataSize = Right( HTTPHeader$, Len( HTTPHeader$ ) - 16 )
      End If
   Until HTTPHeader$ = "" Or Eof( TCPStream )   
   
   If ( dataSize > 0 )
      file = WriteFile( dstFile$ )
      tmpBank = CreateBank( Buffer )
      
      If ( Not file ) Then
         RuntimeError( "Fehler beim erstellen der Downloaddatei" )
      End If
      
      bytesReaded = 0
      
      Repeat         
         bytesRemaind = dataSize - bytesReaded
         
         If ( bytesRemaind < BUFFER_SIZE ) Then
            Buffer = bytesRemaind
         End If
            
         s = ReadBytes( tmpBank, TCPStream, 0, Buffer )
         WriteBytes( tmpBank, file, 0, s )
            
         bytesReaded = bytesReaded  + s
      Until s <> BUFFER_SIZE
      
      CloseFile( file )
      CloseTCPStream( TCPStream )
      FreeBank( tmpBank )
   End If
End Function


Gugge da, es funktioniert.
Da findet mein Code doch nochmal verwendung. Smile

Vorderst du die Seite index.xxx oder irgendeine andere Seite an?

grüße
http://bl4ckd0g.funpic.de

Neue Antwort erstellen


Übersicht BlitzBasic Allgemein

Gehe zu:

Powered by phpBB © 2001 - 2006, phpBB Group