Парсинг HTML для получения довольным использование C#

Я пишу приложение, которое проверяет группу моих веб-страниц. Вместо того, чтобы брать весь исходный код страницы, я хотел бы взять все содержание и хранилище это и быть в состоянии сохранить страницу как простой текст в базе данных. Содержание будет использоваться в других приложениях и не чтении пользователями, таким образом, не будет никакой потребности в нем, чтобы быть совершенно человекочитаемой.

Сначала, я думал об использовании регулярных выражений, но я не имею никакого контроля над законностью веб-страниц и существует большой шанс, что никакое регулярное выражение не дало бы мне содержание.

Если у меня есть исходный код в строке, как я могу повернуть ту строку исходного кода в просто содержание в C#?

9
задан Mike B 10 January 2010 в 18:49
поделиться

2 ответа

Это не на 100% ясно, что вы хотите, но я предполагаю, что вы хотите, чтобы вы хотели, чтобы вы хотели, чтобы вы хотели, чтобы текст минус разметки; Так:

string html;
// obtain some arbitrary html....
using (var client = new WebClient()) {
    html = client.DownloadString("http://stackoverflow.com/questions/2038104");
}
// use the html agility pack: http://www.codeplex.com/htmlagilitypack
HtmlDocument doc = new HtmlDocument();
doc.LoadHtml(html);
StringBuilder sb = new StringBuilder();
foreach (HtmlTextNode node in doc.DocumentNode.SelectNodes("//text()")) {
    sb.AppendLine(node.Text);
}
string final = sb.ToString();
20
ответ дан 4 December 2019 в 07:35
поделиться

Пожалуйста, сделайте не Parse Html самостоятельно! Вы не можете использовать только стандартное регулярное выражение для анализа HTML - это невозможно.

Есть тонны бесплатных библиотек. Один из лучших свободных в мире в мире .NET - это HTML Agily Pack .

Pack Agility HTML поддерживает неработавшие документы, что и что-то, что регулярное выражение или другие базовые анализа, такие как XML, почти никогда не будут делать.

7
ответ дан 4 December 2019 в 07:35
поделиться
Другие вопросы по тегам:

Похожие вопросы: