Wie zu Lesen, die Inhalte der Website in c#?
Möchte ich auf der website Lesen text ohne html-tags und Header. ich brauche nur den text, der angezeigt wird im web-browser.
ich nicht brauchen, wie diese
<html>
<body>
bla bla </td><td>
bla bla
<body>
<html>
ich brauche nur den text "bla bla bla bla".
Habe ich verwendet der webclient und httpwebrequest-Methoden zum abrufen des HTML-Inhalts und zum aufteilen der empfangenen Daten, aber es ist nicht möglich, denn wenn ich die website die tags ändern kann.
Also gibt es eine Möglichkeit um nur den angezeigten text in die website anagrammatically?
- Ich denke, du brauchst einen HTML-parser und-wenn Sie haben die Kontrolle der Quelltext der Seite, zum hinzufügen einer id zu dem element, das Sie möchten, zu bekommen, damit man es mit einer Methode wie getElementById ist der parser.
- haben Sie eine link Beispiel für ein HTML-parser?
Du musst angemeldet sein, um einen Kommentar abzugeben.
Hier ist, wie Sie es tun würde, mit dem HtmlAgilityPack.
Ersten Ihrem Beispiel-HTML:
Laden Sie es (als ein string, in diesem Fall):
Wenn Sie es aus dem Internet ähnlich:
Nun wählen Sie nur text-Knoten mit nicht-whitespace-Zeichen und zuschneiden.
Können Sie diese als einzelne verknüpfte Zeichenfolge, wenn Sie mögen:
Natürlich wird dies nur funktionieren, für einfache web-Seiten. Etwas komplexer wird auch return-Knoten mit den Daten, die Sie eindeutig nicht wollen, wie javascript-Funktionen, etc.
text
direkt:foreach (var index in text) { // do something with index }
. Alternativ dazu können Sie einetext.ToArray();
und behandeln es als ein array.Brauchen Sie spezielle HTML-parser. Der einzige Weg, um den Inhalt der so nicht reguläre Sprache.
Finden Sie unter: Was ist der beste Weg zum Parsen von html in C#?
Ich denke dieser link kann Ihnen helfen.