Привет всем.
Есть странички (для примера
www.algoritm.by/catalog-l... sila.by/nk/noutbuki/param... Их исходный код лежит в переменной "source_top" (код 2 сайтов просто склеен в 1 переменной).
Далее нужно выкинуть из кода самые глубокие блоки, где InnerText не содержит знаков ".,!?;:"
И двигаться от самых глубоких на уровень выше. А далее спарсить итоговый вариант <body> (опять же склеенный для 2 сайтов, т.е. 2 <body>), но уже без тегов, где отсутствуют знаки ".,!?;:"
Делать через htmlagilitypack
Для примера я взял тег Div:
string temp = "";
string result = "";
HtmlAgilityPack.HtmlDocument doc = new HtmlAgilityPack.HtmlDocument();
doc.LoadHtml(source_top);
HtmlNodeCollection divs = doc.DocumentNode.SelectNodes("//div");
foreach (HtmlNode remove in divs)
{
if (remove.InnerText.Contains(".||,||!||?||;||:" ) == null)
{
var replacement = doc.CreateTextNode(" ");
remove.ParentNode.ReplaceChild(replacement, remove);
}
}
divs = doc.DocumentNode.SelectNodes("//body");
foreach (var res in divs)
{
temp = (res.OuterHtml);
result += temp + doc.CreateTextNode(" ");
}
return (result);
Но ничего не работает, потому что я не силен в программировании. Нужно допилить этот код чтобы он выполнял свою функцию.
Сделать нужно сейчас.