Получение отображаемого текста только из HTML - PullRequest
1 голос
/ 27 октября 2009

Есть ли простой способ, с помощью C #, открыть произвольный URL, прочитать текст и уменьшить его до того, который будет отображаться на веб-странице? Я полагаю, что мог бы получить контент и перебирать символ за символом над этим контентом, вырывая все, что есть между <и> (включая). Я кратко посмотрел на HTML Agiligy Pack, и что может быть решением, но оно показалось мне очень тяжелым.

Опять же, все, что мне нужно, это строка текста, представляющая текст, который будет отображаться на экране для произвольного URL.

Ответы [ 2 ]

2 голосов
/ 27 октября 2009

Я бы все-таки выбрал пакет HTML Agility - вначале он немного больше работает, но в конце он более гибкий и лучший дизайн, так как он предложит гораздо больше - например, Запросы в стиле XPath.

0 голосов
/ 27 октября 2009

Если вам просто нужно текстовое представление HTML, это должно сделать работу:

using System.Net;
...

public string GetSiteStringContents(string url)
{
    StringBuilder sb  = new StringBuilder();
    byte[] buf = new byte[8192];
    HttpWebRequest  request  = (HttpWebRequest) WebRequest.Create(url);
    HttpWebResponse response = (HttpWebResponse) request.GetResponse();

    Stream resStream = response.GetResponseStream();
    string tempString = null;
    int count = 0;
    do
    {
        count = resStream.Read(buf, 0, buf.Length);
        if (count != 0)
        {
            tempString = Encoding.ASCII.GetString(buf, 0, count);
            sb.Append(tempString);
        }
    }
    while (count > 0);

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