W
Werner
Gast
Hallo,
ich schreibe gerade an einem WebCrawler (bin kein Anfänger) und hänge an folgendem Problem:
Ich lese über HttpURLConnection per URL.openConnection() den Inhalt einer URl ein und parse
dann die Webseite. Soweit ist alles trivial. Ihr wisst bestimmt schon was kommt :roll:
Da ich mit URI- und URL-Objekten arbeite, um z.B. die Relativen- in Ablotute-URLs aufzulösen,
bin ich darauf angewiesen, dass der Parser auch wirklich eine HTML-Seite als "Futter" bekommt.
Im WEB ist es wohl so, dass bei einem Content-Type text/html etc in 98% der Fällen
eine HTML Seite zu erwarten ist. Nur, was ist wenn der Webserver ein z.B. reines
Perl-Script in Textform zurück-liefert. Das bekommt dann mein Parser als
vermeintliche HTML-Datei und quittiert mir das zurecht mit einer Exception bzw.
mit fehlerhaften Ergebnissen. Kurz und gut, hier meine Frage:
Wie kann ich feststellen, um welches Datei-Format es sich von der von mir über einen URL
angeforderte Webresource wirklich handelt? ???:L Also woran kann ich eine HTML-Seite erkennen.
Z.B: kann man ja schlecht eine PDF durch einen HTML-Parser jagen.... lol
Vielen Dank für Eure Hilfe!!
PS:
Bitte kommt mir aber nicht mit: "Suche doch nach "<html..." oder "<!DOCTYPE HTML " etc..." Leider sieht die
Wirklichkeit erschreckend aus und es fällt mir ein Zitat von Google ein: "Webmaster sind nicht in der
Lage syntaktisch korrektes HTML zu schreiben" Sicher, 90% maches es vielleicht richtig, aber was ist mit
den restlichen 10%? Die muss ein Parser auch verdauen und darin liegt das wirkliche Problem.
ich schreibe gerade an einem WebCrawler (bin kein Anfänger) und hänge an folgendem Problem:
Ich lese über HttpURLConnection per URL.openConnection() den Inhalt einer URl ein und parse
dann die Webseite. Soweit ist alles trivial. Ihr wisst bestimmt schon was kommt :roll:
Da ich mit URI- und URL-Objekten arbeite, um z.B. die Relativen- in Ablotute-URLs aufzulösen,
bin ich darauf angewiesen, dass der Parser auch wirklich eine HTML-Seite als "Futter" bekommt.
Im WEB ist es wohl so, dass bei einem Content-Type text/html etc in 98% der Fällen
eine HTML Seite zu erwarten ist. Nur, was ist wenn der Webserver ein z.B. reines
Perl-Script in Textform zurück-liefert. Das bekommt dann mein Parser als
vermeintliche HTML-Datei und quittiert mir das zurecht mit einer Exception bzw.
mit fehlerhaften Ergebnissen. Kurz und gut, hier meine Frage:
Wie kann ich feststellen, um welches Datei-Format es sich von der von mir über einen URL
angeforderte Webresource wirklich handelt? ???:L Also woran kann ich eine HTML-Seite erkennen.
Z.B: kann man ja schlecht eine PDF durch einen HTML-Parser jagen.... lol
Vielen Dank für Eure Hilfe!!
PS:
Bitte kommt mir aber nicht mit: "Suche doch nach "<html..." oder "<!DOCTYPE HTML " etc..." Leider sieht die
Wirklichkeit erschreckend aus und es fällt mir ein Zitat von Google ein: "Webmaster sind nicht in der
Lage syntaktisch korrektes HTML zu schreiben" Sicher, 90% maches es vielleicht richtig, aber was ist mit
den restlichen 10%? Die muss ein Parser auch verdauen und darin liegt das wirkliche Problem.