Seite 1 von 2
Den Inhalt einer Webseite auslesen
Verfasst: So Jun 03, 2012 1:20 pm
von Kmitska
Hallo Leute,
ich muss mir gewissen Informationen von einer Webseite rausfiltern.
Dafür muss ich also als erstes den Inhalt bekommen.
Habe gelesen, dass man dies mit HTTP macht.
Leider kenne ich mich da nicht so gut aus.
Bitte empfehlt mir keine Bibliotheken, ich glaube, dass man dies auch so realisieren kann, außerdem will ich ja dabei noch was lernen! :)
Was ich bis jetzt gemacht habe (Zum Testen): (brauche ja eigentlich google.com/index.html)
- telnet google.com 80
- get (bekam da einige Zeilen und meine Verbindung wurde unterbrochen)
Danke im Voraus.
Kmitska
Re: Den Inhalt einer Webseite auslesen
Verfasst: So Jun 03, 2012 1:58 pm
von Kmitska
Hallo nochmals,
habe das Problem so weit gelöst, doch habe immernoch ein Problem:
Hier ist die Lösung (bezugnehmend auf telnet):
Code: Alles auswählen
telnet beispiel.com 80
GET /index.html HTTP/1.1
Host: www.beispiel.com
Aber wie mach ich das jetzt z.B. bei Google?
Da bekomme ich unter index.html/php Fehler bzw. werde umgeleitet im Browser.
Re: Den Inhalt einer Webseite auslesen
Verfasst: So Jun 03, 2012 5:56 pm
von Xin
Google wird kaum php verwenden
GET / HTTP/1.1
Re: Den Inhalt einer Webseite auslesen
Verfasst: Mo Jun 04, 2012 6:28 pm
von Kmitska
Wenn du schon sowas erwähnst, wie ist des eigentlich bei denen?
Also hab gehört, dass man sogar mit C++ eine Webseite erstellen könnte.
Kennt sich da jemand aus?
Würde es gerne wissen, könnte man dann eigentlich seine eigene "Web-Sprache" entwickeln?
Dann würde doch der Browser garnicht wissen, was er mit dem Code machen soll, oder?
Re: Den Inhalt einer Webseite auslesen
Verfasst: Mo Jun 04, 2012 6:58 pm
von cloidnerux
Wenn du schon sowas erwähnst, wie ist des eigentlich bei denen?
Also hab gehört, dass man sogar mit C++ eine Webseite erstellen könnte.
Ja und nein.
Das was du vom Internet kennst, also Websites sind nix magisches oder sehr Komplexes. Im Grunde läuft es immer so ab: Du hast eine Verbindung via TCP/IP(Hardware-Ebene + grundlegendes Protokoll) und stellst nun eine Anfrage an einen Computer, den du als Server kennst. Diese Anfrage besteht bei HTTP aus einem in Plain-Text geschrieben HTML-Request, der neben allen möglichen angaben zu dir auch ein Verweis auf das Element beinhaltet, das du gerne haben möchtest. Dies Verarbeitet der Server und generiert darauf eine Antwort, die sonstwie aussehen kann, z.B eine 404-Seite, weil er das Element nicht kennt, oder einen Text, der da HTML, CSS, Javascript oder was auch immer sein kann, aber er könnte dir auch ein Bild senden. Dein Computer, bzw dein Browser interpretiert denn das was da ankommt und versucht es dir irgendwie darzustellen, entweder indem er dir dann die Website anzeigt, oder das Bild, oder dir die Datei downloaded.
Was du kennst, sind HTML und PHP Dateien, die dann irgendwie über Apache gesendet werden. Hierbei gilt das gleiche wie ich schon beschrieben habe, nur dass du dich nicht um das Empfangen und Senden kümmerst, sondern nur einen Inhalt bereit legst, auf den dann Apache zugreift. Bei PHP ist es nochmal anders, weil Apache dies auch als PHP-Code erkennt und dann erstmal einen PHP-Interpreter darüber laufen lässt, damit der Code auf Serverseite ausgeführt wird und sendet dann die ausgaben des PHP codes.
Würde es gerne wissen, könnte man dann eigentlich seine eigene "Web-Sprache" entwickeln?
Ja kann man. Wobei die Frage ist, was du damit meinst. Wenn du damit einen sonstwie ausgearteten Code à la HTML meinst, dann kannst du das sicherlich machen. Das wäre aber gleichbedeutend als wenn du eben diesen Code in eine HTML-Datei schreiben würdest: Dein Browser würde es nicht erkennen.
Und um hier auf den Kontext einzugehen: Wenn du statt "Internet-Sprache" angibst, ein Protokoll für die Datenübertragung via TCP/IP benutzt, gibt es Tausend un ein Beispiel für irgendwelche Protokolle, aber sie machen für das Internet keinen sinn, weil es eben kein Browser versteht und damit nicht der Breiten masse zugänglich ist.
Re: Den Inhalt einer Webseite auslesen
Verfasst: Mo Jun 04, 2012 8:58 pm
von Xin
Kmitska hat geschrieben:Wenn du schon sowas erwähnst, wie ist des eigentlich bei denen?
Also hab gehört, dass man sogar mit C++ eine Webseite erstellen könnte.
Kennt sich da jemand aus?
Warum sollte man mit C++ keine Website erstellen können?
Entweder mit Apache zum Beispiel über CGI oder man implementiert gleich HTTP.
Für das geplante CMS für proggen.org habe ich HTTP in C++ implementiert.
Kmitska hat geschrieben:Würde es gerne wissen, könnte man dann eigentlich seine eigene "Web-Sprache" entwickeln?
Dann würde doch der Browser garnicht wissen, was er mit dem Code machen soll, oder?
Was ist eine Websprache?
Browser können JavaScript oder Plugins abarbeiten.
Was auf dem Server läuft ist davon abhängig, was auf dem Server installiert ist.
Re: Den Inhalt einer Webseite auslesen
Verfasst: Di Jun 05, 2012 10:33 pm
von Kmitska
Also basieren sich alle Sprachen auf HTML?
Und wenn ich C++ verwenden will, mache ich dies als externes Programm?
Re: Den Inhalt einer Webseite auslesen
Verfasst: Di Jun 05, 2012 10:50 pm
von cloidnerux
Also basieren sich alle Sprachen auf HTML?
Nein. Es ist eher so das HTML Standard ist und für Websiten keiner etwas anderes verwenden wird, weil es eben nicht so gut Funktioniert.
Zudem musst du dir wirklich klar werden, wie das Internet funktioniert. HTML ist eine Auszeichnungssprache, die beschreibt, wie eine Website aussieht. Hinzu kommen CSS und JS, die alle VON deinem Browser ausgewertet werden und dann angezeigt werden, z.B als die Website von proggen.org.
Zusätzlich hast du "Sprachen" wie PHP, die auf dem Server ausgeführt werden und dann erst irgendetwas für deinen Browser verwertbares ausspucken, z.B HTML.
Und wenn ich C++ verwenden will, mache ich dies als externes Programm?
Was ist für dich ein "internes" Programm?
Jetzt gilt selbes wie oben: du musst dir bewusst werden, worüber wir reden.
Ein Server ist ein Computer, der nichts kann, WIRKLICH nichts. Erst dadurch, dass du ein Programm oder ein "Dienst/Service" installierst, kann dein Server dir auch etwas Anbieten oder Dienen(to serve). Z.B in dem du einen HTTP-Server wie z.B Apache installierst. Erst durch eben dieses PROGRAMM reagiert dein Server darauf, dass ein anderes Programm, dein Internet-Browser, eine anfrage stellt. Ansonsten würde einfach NICHTS passieren.
Nun ist es auch verständlich, dass wenn du ein eigenes Programm schreibst, dass eben auf eine HTTP-Anfrage reagiert, es sich wie jeder andere Web-Server verhalten würde, nur intern von dir bestimmt wird, was passiert.
Re: Den Inhalt einer Webseite auslesen
Verfasst: Di Jun 05, 2012 10:51 pm
von Xin
Kmitska hat geschrieben:Also basieren sich alle Sprachen auf HTML?
Und wenn ich C++ verwenden will, mache ich dies als externes Programm?
Stell Deine Fragen nochmal, in dem Du deutlicher beschreibst, was gerade in Deinem Kopf rumspuckt, damit man besser verstehen kann, wie Du die Fragen meinst und was für Antworten Du erwartest.
Re: Den Inhalt einer Webseite auslesen
Verfasst: Di Jun 05, 2012 11:45 pm
von Kmitska
Habe das glaube ich langsam verstanden.
HTML, CSS, JS, PHP und co. verwendet man, um den Browser zu gestalten.
Doch niemand sagt, wie der Server arbeiten soll, d.h. ich kann dort alles rum laufen lassen auch C++-Programme.
Aber wenn's um die Darstellung geht bleibt man lieber bei den erwähnten Sprachen.
(So habe ichs jetzt verstanden)