An den HTML-Code einer Webseite kommen
Übersicht

![]() |
MegamagBetreff: An den HTML-Code einer Webseite kommen |
![]() Antworten mit Zitat ![]() |
---|---|---|
Hallo Forum!
Ich Mühe mich gerade damit ab, irgendwie an den HTML Code einer Seite zu kommen (so wie man es mit jedem Browser tun kann - nur mit BB). Ich habe hier ein paar Ansätze gesehen, die haben allerdings nur ein bisschen bzw. gar nicht funktioniert. Ich hoffe, ihr könnt mir da vielleicht weiterhelfen. Ich brauche nur den HTML-Code, ich will den nicht anzeigen oder einen Browser programmieren o.Ä., sondern ich möchte nur den Code runterladen und evt. in eine Text-Datei schreiben. Vielen Dank für eure Mühe! ![]() ,-Megamag |
||
Mein DeviantArt Profil
Gewinner des BAC #136 |
![]() |
TimBo |
![]() Antworten mit Zitat ![]() |
---|---|---|
OpenTCPStream![]() |
||
mfg Tim Borowski // CPU: Ryzen 2700x GPU: Nvidia RTX 2070 OC (Gigabyte) Ram: 16GB DDR4 @ 3000MHz OS: Windows 10
Stolzer Gewinner des BCC 25 & BCC 31 hat einen ersten Preis in der 1. Runde beim BWInf 2010/2011 & 2011/12 mit BlitzBasic erreicht. |
![]() |
Hakkai |
![]() Antworten mit Zitat ![]() |
---|---|---|
Ich hatte mal das Bedürfnis gehabt meine IP in eine Variable zu laden
Code: [AUSKLAPPEN] Function network_Igetip() ; lese wieistmeineip.de in myip ein
Local webserver$ = "www.meineipadresse.de" Local webpath$ = "meine_ip.php" Local tmp_msg$ Local tcp ;Verbinde zur Webseite tcp = OpenTCPStream( webserver$, 80 ) If Not tcp Return 1 ;-> connection fehlgeschlagen EndIf ;Lese Meine Internet IP WriteLine tcp, "GET http://" + webserver$ + "/" + webpath$ + " HTTP/1.0" WriteLine tcp, "" If Eof( tcp ) Return 1 ;-> connection fehlgeschlagen Else While Not Eof(tcp) ;lese nun das Vz aus tmp_msg$ = ReadLine$(tcp) ;DebugLog(tmp_msg$) t = Instr(tmp_msg$, "<B>", 1) If t > 0 s = Instr(tmp_msg$, ";", t) e = Instr(tmp_msg$, "<", s) tmp_ip_dot$=Mid( tmp_msg$, s + 1, e - s -1 ) Exit EndIf Wend EndIf CloseTCPStream tcp Return network_intip(tmp_ip_dot$) End Function Diese Funktion, welche nicht von mir ist und hier im Forum herumwandert, wurde allerdings auch noch gebraucht: Code: [AUSKLAPPEN] Function network_intip(IP$)
Local c, s, e While s < StringWidth(IP$) / fontw s = e If Instr(IP$,".",s+1) > 0 Then e = Instr(IP$,".",s+1) If s >= e Then Exit c = c + 1 Wend If Not c = 3 Then Return -1 a1=Int(Left(IP$,Instr(IP$,".")-1)):IP$=Right(IP$,Len(IP$)-Instr(IP$,".")) a2=Int(Left(IP$,Instr(IP$,".")-1)):IP$=Right(IP$,Len(IP$)-Instr(IP$,".")) a3=Int(Left(IP$,Instr(IP$,".")-1)):IP$=Right(IP$,Len(IP$)-Instr(IP$,".")) a4=Int(IP$) Return (a1 Shl 24) + (a2 Shl 16) + (a3 Shl 8 ) +a4 End Function |
||
Toasty |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
Also ich würde das so machen:
Code: [AUSKLAPPEN] Dim HTML_Line$( 1024 ) ;Array für HTML Lines einrichten... 1025 Felder müssten reichen?
Website$ = "www.google.de" Port = 80 ;Verbinden Stream = OpenTCPStream( Website$, Port ) If Stream = 0 Then RuntimeError"Konnte nicht zur Website verbinden!" ;Anfrage senden WriteLine Stream, "GET "+ RequestedFile$ +" HTML/1.0" WriteLine Stream, "Host: "+ Website$ WriteLine Stream, "" ;Auf Antwort warten Repeat Until ReadLine( Stream ) <> "" ;Bis zur Leer-Zeile auslesen (alles andere sind nur Browser Informationen, also gehört nur indirekt zum HTML Code) Repeat Until ReadLine( Stream ) = "" Repeat i = i + 1 CurrentLine$ = ReadLine( Stream ) If i > 4 If HTML_Line$( i - 1 ) = "" And HTML_Line$( i - 2 ) = "" And HTML_Line$( i - 3 ) = "" And HTML_Line$( i - 4 ) = "" Exit End If End If HTML_Line$( i ) = CurrentLine$( Stream ) Forever CloseTCPStream( Stream ) ;Restlicher Code... Ich bin mir sicher mit dem If HTML_Line$ hab ich das unübersichtlich gemacht, aber was anderes fällt mir dazu nicht ein. Funktioniert auf jeden fall bei mir. Gruß, Toasty |
||
@AMD Phenom BE X4 2,5Ghz(Overclocked 2,61Ghz); 4GB DDR2; 512MB nVidia GeForce 8400gs; Win7 Home Premium 64bit
Lua for President! |
RoLo |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
Ich probiere es einfach und es funktioniert nich ![]() Was kann ich machen? Hat jemand ein Bsp. Code für mich? (Ich will einfach den Inhalt einer Textdatei (licht.txt) auslesen.) (Inhalt der Datei ist entweder "0" oder "1") RoLo |
||
![]() |
XeresModerator |
![]() Antworten mit Zitat ![]() |
---|---|---|
Die Frage ist: Wie sieht dein derzeitiger Code aus? Wo liegt die Datei? | ||
Win10 Prof.(x64)/Ubuntu 16.04|CPU 4x3Ghz (Intel i5-4590S)|RAM 8 GB|GeForce GTX 960
Wie man Fragen richtig stellt || "Es geht nicht" || Video-Tutorial: Sinus & Cosinus THERE IS NO FAIR. THERE IS NO JUSTICE. THERE IS JUST ME. (Death, Discworld) |
RoLo |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
Ich habe noch keinen wirklichen Code.
Und die datei liegt auf http://meine.seite.com/licht.txt |
||
![]() |
Eingeproggt |
![]() Antworten mit Zitat ![]() |
---|---|---|
Wenn du keinen Code hast dann kann auch schwer was funktionieren...
Xeres meint den Programmcode mit dem du versuchst die Datei herunter zu laden / auszulesen? Den bräuchten wir um dir zu sagen was mögliche Fehlerquellen sind. Und weshalb ich eigentlich schreiben wollte: Der Code von Toasty ist ziemlicher Pfusch... die letzte Repeat-Forever Schleife würde ich mit Eof ![]() mfG, Christoph. |
||
Gewinner des BCC 18, 33 und 65 sowie MiniBCC 9 |
![]() |
Midimaster |
![]() Antworten mit Zitat ![]() |
---|---|---|
unter der Adresse...
http://meine.seite.com/licht.txt ...befindet sich rein gar nichts! Vielleicht ist das das Problem? Tipp: Die Text-Datei dort sollte einigen Minimumansprüchen genügen. So würde ich eher ein Zeichen "0" oder "1" in die Text-Datei reinschreiben (also ASCII 49 bzw. 50 ) statt wirklich nur ein Byte mit Wert 0 So funktioniert es z.b. mit einer txt-Datei auf meiner Homepage: BlitzBasic: [AUSKLAPPEN] Graphics 1000,600 Wichtig dabei : Groß und Kleinschreibung beachten!!! so funktioniert es: BlitzBasic: [AUSKLAPPEN] WriteLine tcp,"GET http://www.midimaster.de/xyz.txt HTTP/1.0" und so z.b. nicht: BlitzBasic: [AUSKLAPPEN] WriteLine tcp,"GET http://www.midimaster.de/xyz.txt HTTP/1.0" |
||
- Zuletzt bearbeitet von Midimaster am Mi, Sep 21, 2011 21:44, insgesamt 4-mal bearbeitet
![]() |
Jamagin |
![]() Antworten mit Zitat ![]() |
---|---|---|
Man öffne den IE und dann eine Seite, drückt die rechte Maustaste und dann auf Quelltext anzeigen, danach drückt man STRG+A und STRG+C und öffnet sein Notepad und drückt STRG+V!
Trotzdem versteh ich den Sinn der Frage nicht! Sorry lg. Jamagin |
||
Bevor du etwas neues beginnst, erledige das alte |
![]() |
HolzchopfMeisterpacker |
![]() Antworten mit Zitat ![]() |
---|---|---|
/me haut Jamagin eins über die Rübe
Hör sofort auf, Fragen mit solchen "Antworten" zu beantworten ![]() Wir sind hier: Übersicht ![]() ![]() ![]() ![]() mfG Holzchopf |
||
Erledige alles Schritt um Schritt - erledige alles. - Holzchopf
CC BY ♫ BinaryBorn - Yogurt ♫ (31.10.2018) Im Kopf da knackt's und knistert's sturm - 's ist kein Gedanke, nur ein Wurm |
RoLo |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
@Jamagin FAIL
@Holzchopf Danke für deinen klaren Worte ![]() @Midimaster Danke für die Antwort aber: Ich weiss nicht ob die Seite http://meine.seite.com/licht.txt existiert (ich will hier einfach nicht den orginal link posten) Ich habe mal deinen Code ausprobiert... Und es geht irgendwie nicht. @Für alle die die Frage nicht verstanden haben: Ich will einfach ein Programm programmieren wo mir das zurückliefert, was in der Datei "licht.txt" liegt.(Diese Datei liegt auf einem Server.) Und wenn das funktioniert will ich mithilfe von dieser Datei den Ablauf des Programms beeinflussen. (Aber dass weiss ich dann, wie ich es mache.) In der Datei wird immer nur ein Zeichen stehen. Entweder "0" oder "1". Das Programm soll bei "0" etwas anderes machen als bei "1".(Wie gesagt ich will nur wissen, wie man die Datei liest. Ich schaffe es einfach nicht.) EDIT: Ich will gar nicht den Quelltext!!! Danke RoLo |
||
![]() |
Jamagin |
![]() Antworten mit Zitat ![]() |
---|---|---|
Aso! Na dann entschuldige ich mich für mein Fehlverhalten! Es war nicht böse gemeint!
lg. Jamagin |
||
Bevor du etwas neues beginnst, erledige das alte |
![]() |
Midimaster |
![]() Antworten mit Zitat ![]() |
---|---|---|
@Rolo
wie, der code funktioniert bei dir nicht? auch nicht, wenn du ihn auf meine homepage zeigen lässt? zu... Zitat: ...ich will hier einfach nicht den orginal link posten...
ist schon ein bißchen albern, oder? Hast Du Angst, dass wir Dir die Datei wegessen, oder was? nimm doch irgend einen anderen Namen, oder einen anderen Server, aber stell mal diese LICHT.TXT zur Verfügung! zu... Zitat: ... die die Frage nicht verstanden haben...
Ich habe die Frage ganz genau so verstanden. Auch bei mir handelt es sich bei der xyz.txt um eine Steuerdatei, die von außen von meinen an Usern verkauften Exemplaren abgefragt wird. Ob da nun ein Zeichen oder ein paar Zeilen drinnstehen...bleibt sich das gleiche!!! Es wird übrigens immer "Quelltext" zurückkommen. Ich weiß gar nicht was Du damit meinst??? Ohne einen Browser wird der Inhalt der Datei 1:1 Zeichen für Zeichen so aussehen, wie sie dort auf dem Server ist. Deshalb bekommst Du bei direktem Ansurfen einer Adresse wie www.midimaster.de normalerweise die index.htm mit allen ihren tags und steuerzeichen zu sehen. Und bei einer TXT-Datei einfach alle Zeichen, die Du dort mit einem Texteditor eingegeben hattest. Und da glaube ich liegt auch schon dein Problem. Du solltest diese "0" wirklich mal mit einem Texteditor in die LICHT.TXT schreiben und dann sehen, was passiert... Angenommen (nur mal angenommen) du hättest diese LICHT.TXT dadurch erzeugt, dass du von BB aus eine Byte mit dem Wert 0 reingeschrieben hast... BlitzBasic: [AUSKLAPPEN] WriteByte Stream,0 ... dann wird da nie was zurückkommen, denn diese 0 repräsentiert kein "Zeichen". Wie hast Du denn die LICHT.TXT erzeugt? |
||
- Zuletzt bearbeitet von Midimaster am Mi, Sep 21, 2011 21:45, insgesamt einmal bearbeitet
RoLo |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
@midimaster
Danke für deine ausführlichen antworten ![]() also hier liegt die datei: http://XYZ.net/light.txt Die Datei habe ich nicht erzeugt, sondern liegt schon immer dort ![]() Wenn ich deinen Code auf meine Seite änder dann gibt es eben nur einen Quelltext -> und ich schaffe es nicht den eingendlichen Inhalt herauszulesen... RoLo |
||
- Zuletzt bearbeitet von RoLo am Do, Sep 22, 2011 9:47, insgesamt einmal bearbeitet
![]() |
XeresModerator |
![]() Antworten mit Zitat ![]() |
---|---|---|
Wenn du mal irgendwann deinen aktuellen Code postest, kann man außer herum raten auch vielleicht das Problem lösen... zu "es geht irgendwie nicht" fällt mir nämlich nur "schade aber auch" ein. | ||
Win10 Prof.(x64)/Ubuntu 16.04|CPU 4x3Ghz (Intel i5-4590S)|RAM 8 GB|GeForce GTX 960
Wie man Fragen richtig stellt || "Es geht nicht" || Video-Tutorial: Sinus & Cosinus THERE IS NO FAIR. THERE IS NO JUSTICE. THERE IS JUST ME. (Death, Discworld) |
RoLo |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
Code: [AUSKLAPPEN] Graphics 1000,600
; OpenTCPStream/CloseTCPStream Example Print "Connecting..." tcp=OpenTCPStream( "XYZ.net",80 ) If Not tcp Print "Failed.":WaitKey:End Print "Connected! Sending request..." WriteLine tcp,"GET http://XYZ.net/light.txt HTTP/1.0" WriteLine tcp,Chr$(10) If Eof(tcp) Print "Failed.":WaitKey:End Print "Request sent! Waiting for reply..." While Not Eof(tcp) filedata$=ReadLine$( tcp ) Wend If Eof(tcp)=1 Then Print "Success!" Else Print "Error!" CloseTCPStream tcp print filedata$ WaitKey End |
||
- Zuletzt bearbeitet von RoLo am Do, Sep 22, 2011 9:47, insgesamt einmal bearbeitet
![]() |
Midimaster |
![]() Antworten mit Zitat ![]() |
---|---|---|
aber mit meiner xyz.txt klappt es? Die sollte, wenn es funktioniert hat so eine Liste von Dateinnamen mit der jeweiligen versionsnummer dahinter auflisten...
so etwa: Zitat: HTTP/1.1 200 OK
Date: Wed, 21 Sep 2011 19:20:10 GMT Server: Apache Last-Modified: Tue, 15 Jun 2010 16:23:57 GMT ETag: "50538c7c-17e-4c17a91d" Accept-Ranges: bytes Content-Length: 382 Connection: close Content-Type: text/plain Setup_Score_INT.exe = 8.0.8 ..... End = Error ...wobei der eigentliche Inhalt der Datei erst nach der Zeile "Content-Type: text/plain" beginnt. Alles vorher ist Kommunikation des Servers. Das musst du bei deiner Datei bedenken! Leider schreibst du immer nur "geht nicht" und wir können nur raten, ob überhaupt gar nix gesendet wurde, oder wenigstens irgendwelcher Müll ankam.... ***EDIT*** also bei mir klappt es auch auf deiner Homepage, es kommt folgende Nachricht: Zitat: !HTTP/1.1 200 OK!
!Date: Wed, 21 Sep 2011 19:29:36 GMT! !Server: Apache/2.2! !Last-Modified: Wed, 21 Sep 2011 19:27:48 GMT! !ETag: "292800d-1-4ad78923d1500"! !Accept-Ranges: bytes! !Content-Length: 1! !Vary: Accept-Encoding! !Connection: close! !Content-Type: text/plain! !! !1! Die Ausrufezeichen muss Du dir mal wegdenken. Das sieht so aus, als ob erst eine Leerzeile kommt und dann eine Zeile mit einer 1 Das ist es doch, oder? |
||
- Zuletzt bearbeitet von Midimaster am Mi, Sep 21, 2011 21:45, insgesamt einmal bearbeitet
RoLo |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
Jetzt habe ich festgestellt, dass es mit dem oben genannten Link funktioniert.
Aber mit http://XYZ.com/light.txt funktioniert es nicht. Es gibt immer 0 zurück. Zitat: Connecting...
Connected! Sending request... Request sent! Waiting for reply... Success! 0 und dass bei dem code: Code: [AUSKLAPPEN] Graphics 1000,600
; OpenTCPStream/CloseTCPStream Example Print "Connecting..." tcp=OpenTCPStream( "XYZ.com",80 ) If Not tcp Print "Failed.":WaitKey:End Print "Connected! Sending request..." WriteLine tcp,"GET http://XYZ.com/light.txt HTTP/1.0" WriteLine tcp,Chr$(10) If Eof(tcp) Print "Failed.":WaitKey:End Print "Request sent! Waiting for reply..." While Not Eof(tcp) filedata$=ReadLine$( tcp ) Wend If Eof(tcp)=1 Then Print "Success!" Else Print "Error!" CloseTCPStream tcp Print filedata$ WaitKey End aber wenn ich die datei über den browser öffne geht es: http://XYZ.com/light.txt RoLo |
||
- Zuletzt bearbeitet von RoLo am Do, Sep 22, 2011 9:46, insgesamt einmal bearbeitet
![]() |
Midimaster |
![]() Antworten mit Zitat ![]() |
---|---|---|
also ich krieg hiermit eine "1":
BlitzBasic: [AUSKLAPPEN] Graphics 1000,600 |
||
Gewinner des BCC #53 mit "Gitarrist vs Fussballer" http://www.midimaster.de/downl...ssball.exe |
- Zuletzt bearbeitet von Midimaster am Do, Sep 22, 2011 13:31, insgesamt einmal bearbeitet
Übersicht


Powered by phpBB © 2001 - 2006, phpBB Group