Как получить текст с веб-страницы? - PullRequest
2 голосов
/ 15 ноября 2011

Я хочу получить текст с веб-страницы на C #.
Я не хочу получать HTML, я хочу, чтобы реальный текст был удален с веб-страницы. Например, если я наберу "<b>cake</b>", я хочу торт, а не теги.

Ответы [ 3 ]

4 голосов
/ 15 ноября 2011

Использование библиотеки HTML Agility Pack.

Это очень хорошая библиотека для разбора HTML, для ваших требований используйте этот код:

    HtmlAgilityPack.HtmlWeb web = new HtmlAgilityPack.HtmlWeb();
    HtmlAgilityPack.HtmlDocument doc = web.Load("Yor Path(local,web)"); 
    var result=doc.DocumentNode.SelectNodes("//body//text()");//return HtmlCollectionNode
    foreach(var node in result)
    {
        string AchivedText=node.InnerText;//Your desire text
    }
1 голос
/ 15 ноября 2011

Это зависит. Если ваше приложение загружает веб-страницу с помощью компонента WebBrowser, то этот компонент автоматически выполнит синтаксический анализ для вас в фоновом режиме (как Internet Explorer).Просто пройдитесь по дереву DOM и извлеките нужный текст.Вы найдете свойство HtmlElement.InnerText особенно полезным:)

1 голос
/ 15 ноября 2011

Вы можете вырезать теги, используя регулярные выражения, такие как это 2 (простой пример):

// You can import System.Text.RegularExpressions for convenience, of course.
System.Text.RegularExpressions.Regex tag = new System.Text.RegularExpressions.Regex("\<.+?\>");
myHTML = tag.Replace(myHTML, String.Empty);

Но если вам нужно извлечь большие объемы хорошо структурированных данныхтогда вам лучше использовать библиотеку HTML 1 .(Если веб-страница XHTML, тем лучше - используйте классы System.Xml.)

1 Например, http://htmlagilitypack.codeplex.com/,. 2 Это может привести к непреднамеренным побочным эффектам, если вы пытаетесь извлечь данные из JavaScript или если данные находятся внутри атрибута элемента и содержат угловые скобки.Вам также необходимо принять escape-последовательности, такие как &amp;.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...