Laden...

Text aus Webseite auslesen

Erstellt von trex0113 vor 7 Jahren Letzter Beitrag vor 7 Jahren 2.822 Views
T
trex0113 Themenstarter:in
5 Beiträge seit 2017
vor 7 Jahren
Text aus Webseite auslesen

Hallo Community,

Es gibt da eine schöne Webseite: http://watchout4snakes.com/wo4snakes/Random/RandomWord

Diese generiert bei jedem Besuch ein zufälliges Wort.

Ich möchte nun dieses Wort in einem Consolen Programm abgreifen und für meine Zwecke nutzen.
Gibt es da Möglichkeiten wie ich das ganze hinbekomme? Per WebClient oder HtmlWebRequest bekomme ich immer nur den Quelltext der seite. Ich möchte jedoch nur dieses Wort was dort generiert wird.

Mit freundlichen Grüßen,
trex0113

37 Beiträge seit 2014
vor 7 Jahren

Hallo trex0113,

schau dir am besten Libraries wie *Html Agility Pack - https://htmlagilitypack.codeplex.com *AngleSharp - https://github.com/AngleSharp/AngleSharp

an.

C
2.122 Beiträge seit 2010
vor 7 Jahren

Per WebClient oder HtmlWebRequest bekomme ich immer nur den Quelltext der seite.

Es scheint als hättest du ein Verständnisproblem. Natürlich liefert eine Anfrage den Quelltext der Seite, statt der grafischen Darstellung. Wenn du "nur" Quelltext bekommst, funktioniert deine Anfrage bereits tadellos. Das ist Grund zur Freude 😃

Jetzt liegts an dir oder einer fertigen Bibliothek, das Wort von dort herauszulesen.

Da bei mir Javascript zunächst blockiert wird, hab ich es auf der Seite irgendwie geschafft, nur das Zufallswort angezeigt zu bekommen, ohne das ganze drumherum. Nachvollziehbar ist es leider nicht mehr. Vielleicht hat die Seite so einen Modus, dann kannst du dir das Wort wirklich ohne Aufwand selbst herauslesen.
Wie legal das ist weiß ich übrigens nicht. Muss man ja leider immer dazusagen.

T
156 Beiträge seit 2010
vor 7 Jahren

With a POST request you get the random Word. To inspect, use Fiddler Web Debugger

private static string GetRandomWord()
{
    var request = (HttpWebRequest)WebRequest.Create("http://watchout4snakes.com/wo4snakes/Random/RandomWord");
    request.ContentType = "application/x-www-form-urlencoded; charset=UTF-8";
    request.Method = "POST";
    request.ContentLength = 0;

    using (var response = request.GetResponse())
    {
         using (var responseStream = response.GetResponseStream())
         {
              using (var responseReader = new StreamReader(responseStream, Encoding.UTF8))
              {
                   return responseReader.ReadToEnd();
              }
         }
    }
}

lG