Try parsing the document, find the occurence(s) of the search term, and then extracting the surrounding text. This can be done by taking all the text inside the same tag, or take all text in the same sentence. You could do that with a regular expression.
Which works best depends on your needs and the structure of the content. You could also include surrounding sentences in order to achieve a minimum length of the extracted text.
Here is an example, trying to extract sentences that contain the word "question" in this question. It is by no means perfect, but it illustrates the concept and should get you started:
using System;
using System.Net;
using System.Text.RegularExpressions;
class Program
{
private const string url =
"http://stackoverflow.com/questions/1655313/get-the-static-text-contents-of-a-web-page";
private const string keyword = "question";
private const string regexTemplate = ">([^<>]*?{0}[^<>]*?)<";
static void Main(string[] args)
{
WebClient client = new WebClient();
string html = client.DownloadString(url);
Regex regex = new Regex(string.Format(regexTemplate,keyword) , RegexOptions.IgnoreCase);
var matches = regex.Matches(html);
foreach (Match match in matches)
Console.WriteLine(match.Groups[1].Value);
}
}