Hämta första

taggen som text

Sonen ville göra om ett Python program till c# så han kunde bygga ett Winforms-GUI till det. Så med gemensamma krafter så översatta vi lite ormkod till c#. Hans tanke är att han har en lista i en textfil och listan innehåller ord som han vill slå upp mot Wikipedia för att sedan lyfta ut första paragrafen och konvertera HTML-texten till plain text.

För att få till det så skrev vi tre hjälpmetoder – första metoden hämtar in en webbsida och sparar i en string:

public static String GetHtml(string Url)
{
  string result;
  HttpWebRequest myRequest = (HttpWebRequest)WebRequest.Create(Url);
  myRequest.Method = "GET";

  using (WebResponse myResponse = myRequest.GetResponse())
    using (StreamReader sr = new StreamReader(myResponse.GetResponseStream(), 
             Encoding.UTF8))
  result = sr.ReadToEnd();
          
  return result;
}

Nästa metod lyfter ut första <p> taggen och returnerat allt innehåll i den:

static string GetFirstParagraph(string inputHTML)
{
  Match m = Regex.Match(inputHTML, @"<p>\s*(.+?)\s*</p>");
  if (m.Success)
  {
    return m.Groups[1].Value;
  }
  else
  {
    return "";
  }
}

och till sist en metod för att rensa bort HTML-taggar – denna är inte bombsäker, men “good enough”:

public static string StripHTML(string input)
{
  return Regex.Replace(input, "<.*?>", String.Empty);
}

Hoppas det hjälper någon!