2017-04-06 3 views
0

Ich möchte den html einer webseite bekommen. Dann mit diesem HTML gibt es zwei Elemente, die xpath ich habe, die ich lesen möchte. Ich habe wenig Wissen zu diesem Thema.download von websites html in html dokument

Bei der Suche sehe ich immer Beispiele, aber sie laden die URL und legen Sie den HTML-Code in eine Zeichenfolge. Aber ich glaube, da ich die beiden XPaths habe, wäre es besser, das HTML der Webseite als HTML-Dokument anstatt als String herunterzuladen oder liege ich falsch?

using (WebClient client = new WebClient()) { 
    string s = client.DownloadString(url); 
} 

Wie kann ich den HTML-Code einer Webseite in ein HTML-Dokument herunterladen, das ich durchsuchen kann?

+1

Mögliches Duplikat [Was ist der beste Weg, um HTML in C# analysieren?] (Http://stackoverflow.com/questions/56107/what-is-the-best-way-to- parse-html-in-c) – mason

+0

@mason ich sollte hinzugefügt haben Ich möchte dies tun, ohne Verwendung von Drittanbieter-Code. Ich kann keine 3rd-Party-Dateien an meinem Arbeitsplatz herunterladen. – mHelpMe

+0

Könnten Sie Informationen zu XPath-Abfragen geben? – levent

Antwort

-2

Sie können Stream verwenden heruntergeladenen Daten in eine Datei zu schreiben:

string s = string.Empty; 
using(WebClient client = new WebClient()) 
{ 
    string s = client.DownloadString(url); 
} 

using (FileStream fs = new FileStream("test.html", FileMode.Create)) 
{ 
    using (StreamWriter w = new StreamWriter(fs, Encoding.UTF8)) 
    { 
    w.WriteLine(s); 
    } 
    } 
+2

Sie haben gefragt, wie Sie html in eine Datei herunterladen und dann meine Antwort, die die genauen Informationen enthält, sogar ohne Verwendung externer Bibliotheken downvovern lassen? Nicht wirklich cool. –

+0

** es wäre besser, das HTML der Webseite als HTML-Dokument herunterzuladen ** - er versucht zu sagen, er muss herausfinden, wie man das HTML-Dokument als strukturiertes Dokument durchsucht, das durch Xpath durchsuchbar ist. https://www.w3schools.com/xml/xpath_intro.asp. Ich stimme zu, dass die Frage schlecht formuliert ist. –

1

Dies ist, wie ich dies tun.

  1. Zuerst definieren Sie Ihre URL in einer String-Variablen.
  2. Dann downloaden Sie die Zeichenfolge mit HttpWebRequest Klasse.
  3. Ich benutze HtmlAgilityPack, also sollten Sie es in Ihr Projekt aufnehmen (z. B. mit Nugger).
  4. Erstellen Sie das Objekt HtmlDocument, und laden Sie Daten in dieses Objekt.
  5. Jetzt können Sie über Ihre HtmlDocument navigieren.

    string urlAddress = "url.com"; 
    
    HttpWebRequest request = (HttpWebRequest)WebRequest.Create(urlAddress); 
    HttpWebResponse response = (HttpWebResponse)request.GetResponse(); 
    string data = ""; 
    if (response.StatusCode == HttpStatusCode.OK) 
    { 
    Stream receiveStream = response.GetResponseStream(); 
    StreamReader readStream = null; 
    
    if (response.CharacterSet == null) 
    { 
        readStream = new StreamReader(receiveStream); 
    } 
    else 
    { 
        readStream = new StreamReader(receiveStream, Encoding.GetEncoding(response.CharacterSet)); 
    } 
    
    data = readStream.ReadToEnd(); 
    
    
    response.Close(); 
    readStream.Close(); 
    } 
    
    HtmlDocument document2 = new HtmlAgilityPack.HtmlDocument(); 
    document2.LoadHtml(data);