website auslesen

Übersicht BlitzBasic Allgemein

Neue Antwort erstellen

 

nicknacck

Betreff: website auslesen

BeitragMi, Aug 03, 2011 23:36
Antworten mit Zitat
Benutzer-Profile anzeigen
hallo!

ich kann mir wirklich nicht selbst helfen. hab stunden lang gegooglet und nun bin ich hier und frage verzweiflt euch! Very Happy

ich möchte von einer seite (http://nicknacckathomeunix.de.to/) einen text haben. wie bekomme ich denn mit bb abgefragt?

hoffe ihr könnt mir weiter helfen

lg nn

Eingeproggt

BeitragMi, Aug 03, 2011 23:42
Antworten mit Zitat
Benutzer-Profile anzeigen
Allgemein gesagt: Mit den TCP-Befehlen eine HTTP-Verbindung aufbauen, Seite laden und fertig.
Is aber nicht ganz so einfach wie ichs beschrieben hab, dauert sicher n Tag wenn man da bei 0 beginnt. Zum Glück gibts einige Codes die sich mit der Forensuche finden lassen sollten zum Thema HTTP.

Aber in deinem speziellen Fall haben wir noch n Problem, nämlich dass dein Text eigentlich in einer Seite mit Frames steht... dh du müsstest auch noch den Frame-Quelltext laden.
Allgemein gesagt. Vergiss es, da brauchts ja schon fast ne ganze Browser-App ^^
Spezieller gesagt: Wenn man sich auf den Fall festnageln will, würden die String Befehle wie Instr, Mid und so helfen, die geladene Seite so zu zerlegen dass man am Ende den Text raus kriegt.

mfG, Christoph.
Gewinner des BCC 18, 33 und 65 sowie MiniBCC 9
 

nicknacck

BeitragDo, Aug 04, 2011 0:03
Antworten mit Zitat
Benutzer-Profile anzeigen
alles kla Very Happy mit http hab ich mich heute schon den ganzen tag auseinander gesetzt das resultat war kopfschmerzen und kein ergebniss.. wenn sich einer die mühe macht nen beispiel zu coden wär ich außerst dankbar aber wär nicht nötig ich denk mir was anderes aus Very Happy

Eingeproggt

BeitragDo, Aug 04, 2011 0:27
Antworten mit Zitat
Benutzer-Profile anzeigen
Kannst dich bei Pummelie bedanken:
https://www.blitzforum.de/foru...hp?t=33316

Der Code is zwar speziell für Bilder, aber den großteil kannst du 1:1 verwenden wenn du ne Textseite lädtst.
Also von Anfang an alles bis hinunter zu dem Teil wo er die Bildformate abcheckt, Dateiendungen festlegt und so. Ab dann musst du den Code leider vergessen ud dir mit Eof und ReadLine was basteln zum Text auslesen.

Viel Erfolg,
Christoph.
Gewinner des BCC 18, 33 und 65 sowie MiniBCC 9
 

nicknacck

BeitragDo, Aug 04, 2011 2:20
Antworten mit Zitat
Benutzer-Profile anzeigen
wow eine sehr schöne function! vielen dank daraus könnte es sogar noch was werden.
danke schön Smile

lg nn
 

nicknacck

BeitragDo, Aug 04, 2011 2:47
Antworten mit Zitat
Benutzer-Profile anzeigen
jo habs geschafft danke noch mal ^^

Code: [AUSKLAPPEN]
server$="nicknacckathomeunix.npage.de"
tcp=opentcpstream(server,80)

If tcp=0 Then
   Print "NO CONNECTION"
   WaitKey
   End
Else
   WriteLine tcp,"GET /style.html HTTP/1.0"
   WriteLine tcp,"HOST: "+server
   WriteLine tcp,""
EndIf

Repeat
   li$=ReadLine$(tcp)
   If Left$(li$,15) = "Content-Length:" Then
      size=Right$(li$,Len(li$)-15)
   EndIf
   If li$ = "" Then Exit
Forever

wort$=ReadLine$(tcp)

Print wort
WaitKey
End

Pummelie

BeitragDo, Aug 04, 2011 3:58
Antworten mit Zitat
Benutzer-Profile anzeigen
Ich würde dir empfehlen das du es nicht live ausließt aus dem TCP-Stream sondern erstmal die gesamte Datei vom Server Lokal speicherst.
Dann kannst du das Parsen dieser Datei z.B. in eine extra Funktion dafür legen.
BlitzBasic: [AUSKLAPPEN]
server$="nicknacckathomeunix.npage.de"
tcp=OpenTCPStream(server,80)

If tcp=0 Then
Print "NO CONNECTION"
WaitKey
End
Else
WriteLine tcp,"GET /style.html HTTP/1.1"
WriteLine tcp,"HOST: "+server
WriteLine tcp,""
EndIf

Repeat
li$=ReadLine$(tcp)
If Left$(li$,15) = "Content-Length:" Then
size=Right$(li$,Len(li$)-15)
EndIf
If li$ = "" Then Exit
Forever

Local pfad$=GetEnv$("TMP")
If Right$(pfad$,1)<>"\" Then pfad$=pfad$+"\"
pfad$=pfad$+"tmp_website.dat"
Local file=WriteFile(pfad$)
If size=0 Then
Repeat
WriteByte(file,ReadByte(tcp))
Until Eof(tcp)=1
Else
Local bank=CreateBank(size)
ReadBytes(bank,tcp,0,size)
WriteBytes(bank,file,0,size)
FreeBank(bank)
EndIf
CloseTCPStream(tcp)
CloseFile(file)
;Ab hier kannst du dann gemütlich die neue Datei, unter pfad$ auslesen und auswerten.


Noch etwas du hattest in deiner Anfrage HTTP/1.0.
Wie ich selber herausfinden konnte, gibt es mittlerweile einige Serverprogramme, die bei einer solchen Anfrage entweder eine Fehlerseite senden, oder die Verbindung sofort trennen... Nimm Lieber das HTTP/1.1
It's done when it's done.

Neue Antwort erstellen


Übersicht BlitzBasic Allgemein

Gehe zu:

Powered by phpBB © 2001 - 2006, phpBB Group