Laden...

Im HTML Code nach einem bestimmten Wort suchen

Erstellt von lschwarz vor 5 Jahren Letzter Beitrag vor 5 Jahren 2.009 Views
L
lschwarz Themenstarter:in
6 Beiträge seit 2018
vor 5 Jahren
Im HTML Code nach einem bestimmten Wort suchen

Hallo zusammen,

ich würde gerne ein Programm schreiben, welches im Quelltext der Website nach einem String sucht. Folgende Methode habe ich dazu geschrieben, um den Quelltext zu bekommen:


        public static string downloadWebPage(string URL)
        {
            WebClient client = new WebClient();

            string s = client.DownloadString(URL);

            //Schreibt den Quelltext noch in eine Textdatei auf dem Desktop
            File.WriteAllText("C:\\Users\\Luca\\Desktop\\text.txt", s);
            return s;
        }

Wenn ich das nun beispielsweise auf die Seite der Sendungsverfolgung von DHL anwende sehe ich, dass das so nicht funktioniert. Wenn ich den Quelltext im Browser öffne, ist die Webseite auch nicht vollständig zu sehen. Ich würde gerne im Quelltext nach den Worten "zugestellt" suchen, um zu wissen, ob die Sendung zugestellt ist. (mithilfe von Contains())

Ich kenne mich mit HTML nicht sonderlich gut aus und weiß nicht, warum die der Quelltext nicht dem angezeigten entspricht. Evtl. könnt Ihr mir da weiter helfen.

Vielen Dank und beste Grüße

1.040 Beiträge seit 2007
vor 5 Jahren

Wenn ich den Quelltext im Browser öffne, ist die Webseite auch nicht vollständig zu sehen.

Der Quelltext, den du im Browser siehst, passt also zum heruntergeladenen? Dann funktioniert das zumindest ohne Probleme.

Dass der Quellcode nicht alles zeigt, liegt an evtl. Skripten oder eingebundenen Dateien oder so (bin da kein Profi).

L
lschwarz Themenstarter:in
6 Beiträge seit 2018
vor 5 Jahren

Genau, das Problem liegt am Quelltext an sich. Das downloaden mit C# funktioniert ganz normal. Ich denke auch, dass da vielleicht durch Javascript etwas noch hinzugefügt wird.

Ich weiß, das hier ist kein HTML Forum, aber vielleicht hat ja noch jemand eine Lösung.

1.040 Beiträge seit 2007
vor 5 Jahren

Dann ist der Titel aber komplett falsch, das Downloaden funzt ja problemlos.

Und wenn der Quelltext nicht mehr hergibt, kann man da eher weniger machen, hat ja seine Gründe warum da nicht alles zu sehen ist (Stichwort: Sicherheit). Schau doch sonst mal, ob die Post bzw. DHL eine Api für deinen Anwendungsfall hat. Oder schaue nach einer App. =)

M
184 Beiträge seit 2012
vor 5 Jahren

So wie ich dich verstehe, möchtest du nicht den Quellcode der Seite haben, sondern das DOM der Seite zu einem festgelegten Zeitpunkt (z.B. nachdem die Seite komplett gerendert wurde)

Dazu brauchst du irgendeine Renderengine (Webkit, Trident,...)
Das könntest du z.B. über das WebBrowser-Control realisieren.

1.029 Beiträge seit 2010
vor 5 Jahren

Hi,

kurz und knackig: Hör bitte auf das so zu machen.

Warum?
a) HTML (das jederzeit geändert werden kann) auszulesen ist generell nicht der optimale Ansatz und eine Notfallösung
b) DHL bietet für Privat und Geschäftskunden extra eine API zur Sendungsverfolgung an

Erstell dir am besten ein Konto auf https://entwickler.dhl.de/ - lies dich ein - und bau was gescheites 😉

LG

16.835 Beiträge seit 2008
vor 5 Jahren

Das könntest du z.B. über das WebBrowser-Control realisieren.

Das WebBrowser-Control vom Framework ist obsolet.
Es kann modernes JavaScript nicht ausführen.

Der einzig legitime Weg ist hier der von Taipi genannte über die API.

L
lschwarz Themenstarter:in
6 Beiträge seit 2018
vor 5 Jahren

Vielen Dank für die ganzen Antworten.

Dass dies ein absolut unschöner Weg ist, ist mir absolut bewusst. Ich bin momentan nur dabei C# zu lernen und dachte, das ist doch vielleicht eine ganz interessante Aufgabe.

Dann versuche ich mal mein Glück über die API. Vielen Dank!