Wie kann ich den HTML-Code von einer Website abrufen, speichern und mithilfe eines LINQ-Ausdrucks Text finden?
Ich verwende den folgenden Code, um die Quelle einer Webseite abzurufen:
public static String code(string Url)
{
HttpWebRequest myRequest = (HttpWebRequest)WebRequest.Create(Url);
myRequest.Method = "GET";
WebResponse myResponse = myRequest.GetResponse();
StreamReader sr = new StreamReader(myResponse.GetResponseStream(), System.Text.Encoding.UTF8);
string result = sr.ReadToEnd();
sr.Close();
myResponse.Close();
return result;
}
Wie finde ich den Text in einem Div in der Quelle der Webseite?
Contains
Anruf könnte "gut genug" sein.Antworten:
Abrufen von HTML-Code von einer Website. Sie können Code wie diesen verwenden.
Dadurch erhalten Sie den von der Website zurückgegebenen HTML- Code. Aber Text über LINQ zu finden ist nicht so einfach. Vielleicht ist es besser, reguläre Ausdrücke zu verwenden, aber das funktioniert nicht gut mit HTML- Code
quelle
Besser können Sie die Webclient-Klasse verwenden, um Ihre Aufgabe zu vereinfachen:
quelle
using
Anforderung Deutlich gezeigt, damit jeder sie verwenden kann: +1Am besten ist HTMLAgilityPack . Sie können auch Fizzler oder CSQuery verwenden je nachdem, wie Sie die Elemente auf der abgerufenen Seite auswählen müssen. Die Verwendung von LINQ- oder Regukar-Ausdrücken ist nur fehleranfällig, insbesondere wenn der HTML-Code fehlerhaft sein kann, fehlende schließende Tags fehlen, verschachtelte untergeordnete Elemente haben usw.
Sie müssen die Seite in ein HtmlDocument-Objekt streamen und dann das gewünschte Element auswählen.
[EDIT] Eigentlich verschrotten Sie das. Die einfachste Methode ist die Verwendung von FizzlerEx , einer aktualisierten Implementierung von jQuery / CSS3-Selektoren des ursprünglichen Fizzler-Projekts.
Codebeispiel direkt von ihrer Site:
Ich denke nicht, dass es einfacher sein kann.
quelle
Ich benutze AngleSharp und war sehr zufrieden damit.
Hier ist ein einfaches Beispiel zum Abrufen einer Seite:
Und jetzt haben Sie eine Webseite in der Dokumentvariablen . Dann können Sie einfach mit LINQ oder anderen Methoden darauf zugreifen. Wenn Sie beispielsweise einen Zeichenfolgenwert aus einer HTML-Tabelle abrufen möchten:
Informationen zur Verwendung von CSS-Selektoren finden Sie in den AngleSharp-Beispielen .
quelle
Hier ist ein Beispiel für die Verwendung der
HttpWebRequest
Klasse zum Abrufen einer URLquelle
Sie können WebClient verwenden, um das HTML für eine beliebige URL herunterzuladen. Sobald Sie den HTML- Code haben, können Sie eine Bibliothek eines Drittanbieters wie HtmlAgilityPack verwenden, um Werte im HTML-Code wie im folgenden Code zu suchen.
quelle
Versuchen Sie diese Lösung. Es funktioniert gut.
quelle