2016-12-24 10 views
0

Ich möchte eine Anwendung erstellen, die nach einem bestimmten Schlüsselwort sucht und eine Definition des Schlüsselworts anzeigt. Ich benutze einen Webbrowser, der zur Website navigiert. Jetzt möchte ich diesen HTML-Code parsen und bekomme die <span> mit der Beschreibung. Ist das möglich? Ich kann dieses Problem nicht lösen. HierC# Wie bekomme ich eine Spanne von einer Div-Klasse?

ist der HTML-Code:

<div class="_G1d _wle _xle"> 
    <div class="_RBg"> 
     <div class="mod" data-md="50" style="clear:none" data-ved="0ahUKEwjL6Nn40YzRAhWBeFAKHW6qAOwQkCkIrQEoATAV"> 
      <!--m--> 
      <div class="_cgc" data-hveid="174" data-ved="0ahUKEwjL6Nn40YzRAhWBeFAKHW6qAOwQziAIrgEoADAV"> 
       <div jsl="$t t-oF0h478wPRI;$x 0;" class="r-iv2Iqojxo_88"> 
        <div class="kno-rdesc r-ia8pb7p3eFsA" jsl="$t t-JgTEvN6zUII;$x 0;"> 
        <span> 
         "The Eiffel Tower is a wrought iron lattice tower on the Champ de Mars in Paris, France. It is named after the engineer Gustave Eiffel, whose company designed and built the tower." 
        </span> 
        <span>...</span> 
        </div> 
       </div> 
      </div> 
     </div> 
    </div> 
    <!--n--> 
</div> 

Und das ist mein Code:

private void button1_Click(object sender, EventArgs e) 
{ 
    webBrowser1.Navigate("https://www.google.de/webhp?sourceid=chrome-instant&ion=1&espv=2&ie=UTF-8#q=" + textBox1.Text); 
    Get_Data(); 
} 

private void Get_Data() 
{ 
    foreach (HtmlElement el in webBrowser1.Document.GetElementsByTagName("div")) 
     if (el.GetAttribute("className") == "_cgc") 
     { 
      description.Text = el.InnerText; 
     } 
} 
+0

Bitte senden Sie Ihren Code als Code anstelle eines Screenshots. –

+0

Das ist meine Schuld, sorry. Ich bin neu in StackOverflow. –

Antwort

0

Vielleicht können Sie Split verwenden, um die Spanne zu erhalten:

private void Get_Data() 
    { 
     foreach (HtmlElement el in webBrowser1.Document.GetElementsByTagName("div")) 
     { 
      if (el.GetAttribute("className") == "_cgc") 
      { 
       string[] splitSpan = el.InnerText.Split(new[] { "<span>", "</span>" }, StringSplitOptions.None); 
       description.Text = splitSpan[1]; 
      } 
     } 
    } 
+0

gibt es immer eine nicht behandelte Ausnahme vom Typ "System.NummReferenceException". Es scheint mir, dass das Problem bei "webBrowser1.Document.GetElementsByTagName (" div ")" befindet. –

+0

Ich habe das alte Problem gelöst, aber jetzt gibt es ein neues. Sieh dich selbst: http://i.imgur.com/IRpZ7cj.png –

Verwandte Themen