Попробуйте выполнить синтаксический анализ документа, найти вхождение искомого слова, а затем извлечь окружающий текст. Это можно сделать, взяв весь текст внутри одного тега или взяв весь текст в одном предложении. Вы можете сделать это с помощью регулярного выражения.
Что работает лучше всего, зависит от ваших потребностей и структуры контента. Вы также можете включить окружающие предложения для достижения минимальной длины извлеченного текста.
Вот пример, пытающийся извлечь предложения, содержащие слово «вопрос» в этом вопросе. Он ни в коем случае не идеален, но он иллюстрирует концепцию и должен помочь вам начать:
using System;
using System.Net;
using System.Text.RegularExpressions;
class Program
{
private const string url =
"/1330492/poluchit-staticheskoe-tekstovoe-soderzhimoe-veb-stranitsy";
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);
}
}