Website aufrufen und Quellcode einlesen

  • 24 Antworten
  • Letztes Antwortdatum
ich habe ne gantz einfache idee für deine geschichte....du guckst in deinem handy nach den datenvolumen dass du verbraucht hast oder benutzt chrome um direkt auf die seite zu kommen(speicher sie dir als favoriten) und voila schnelle lösung ... darum gehts beim programmieren effiziente Lösungen die zeitsparend sind und worüber man sich nicht tage den kopf zerbrechen muss lol
 
Hallo,
um das Thema nochmal aufzugreifen, das geht leider nicht. Ich hatte vorhin mit C# angefangen, ein Programm zu schreiben. Nach einigen Info sammeln wie die Daten passend aus dem Quelltext ausgelesen werden könnten, speicherte ich mir zuvor die Seite offline und als ich eben live testen wollte (pass.telekom.de etc.), ging es nicht.

Kurzfassung: die Telekom hat anscheinend irgendwas gebastelt, dass die Infos nicht direkt eingeholt werden können/sollen oder wie auch immer, die Fehlermeldung 511 sagt folgendes:
Code:
Network Authentication Required
Auf deutsch gesagt
Code:
Netzwerkauthentifizierung erforderlich
Leider weiß ich nicht, wie man C# zum Beispiel dennoch dazu bringen könnte, dass es klappt.
Hier der Quelltext der einen aussperrt:
Hinweis: pass.telekom.de wurde manuell hinzugefügt.
HTML:
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<!--     <meta http-equiv="Refresh" -->
<!--         content="5; url=http://pass.telekom.de/portal/home?event=meta_refresh" /> -->
    <title>Travel&#160;&amp;&#160;Surf - Weiterleitung</title>
    <link rel="stylesheet" type="text/css" href="stylesheet-telekom.css" />
</head>
<body>
<div id="container">
<div id="logo">
<div id="logoLeft"></div>
<div id="logoFill"></div>
</div>
<div id="title" class="pageTitle">
<h1 class="header">Weiterleitung</h1>
</div>
<div id="content" class="pageContent">
<p>Direkter Zugriff auf die Seite nicht m&ouml;glich.</p>
<p>Sie werden in 5 Sekunden auf die Startseite weitergeleitet. Wenn dies nicht automatisch geschieht, klicken Sie bitte <a href="http://pass.telekom.de/portal/home?event=unknown_browser">hier</a>.</p>
</div>
<div id="footer">

<div id="links"><a href="http://pass.telekom.de/portal/imprint?event=unknown_browser">Impressum</a>
</div>
<p id="costInfo" class="costInfo">Diese Seite ist f&uuml;r Sie kostenfrei.</p>
</div>
</div>
</body>
</html>
 
@Mamfred: Was genau hast du denn vor?

HTTP Status 511 sagt doch, dass du dich am Netzwerk authentifizieren musst und es soll eine Weiterleitung oder ein Link bereitgestellt werden (Quelle: RFC 6585 - Additional HTTP Status Codes )
Beides ist in der von dir geposteten Seite vorhanden. Deinem C#-Client musst du das natürlich beibringen, dieser Weiterleitung zu folgen. Vermutlich erhältst du dann ein Formular, in das du die Daten eintragen sollst. Das kannst du dann per Post inkl. der Formulardaten "emulieren" und so die Daten an die richte Stelle schicken.
 
Um die ganze Sache mal aufzuklären

Der Server gibt dir doch den Hinweis, dass er deinen Browser nicht kennt

12nico07 schrieb:
@kleinerkathe: Das hatte ich schon porbiert, jedoch kommt es hier zu einem Fehler. Die Webseite wird nicht richtig aufgerufen... "Direkter Zugriff auf die Seite nicht möglich."

Code:
...
        <div id="links"><a href="portal/imprint?event=unknown_browser">Impressum</a>
...

Also wäre es vielleicht sinnvoll dem Server über den User-Agent Request-Header deinen Browser mitzuteilen
z.B. so
Code:
HttpURLConnection conn = (HttpURLConnection) new URL("http://pass.telekom.de/")
                            .openConnection();

conn.setRequestProperty("User-Agent","Mozilla/5.0");
conn.connect();
InputStream is = conn.getInputStream();


Et voilà, schon funktioniert es
Anschließend nur noch den InputStream parsen und schon hat man die Informationen

MfG Niko
 
niko132 schrieb:
[...] Der Server gibt dir doch den Hinweis, dass er deinen Browser nicht kennt [...]
Vielen Dank, es hat einwandfrei via C# geklappt
Code:
var wc = new WebClient();
wc.Headers.Add("user-agent", "Mozilla/5.0)");
wc.Encoding = Encoding.UTF8;
:cool2: Hätte man eigentlich selber drauf kommen sollen ;)

PS: Encoding ist wichtig, bei mir kam ohne nur ASCII heraus :winki:
 
Zurück
Oben Unten