仅从HTML获取显示的文本

时间:2009-10-26 22:32:58

标签: c# html parsing

是否有一种简单的方法,使用C#打开任意URL,读入文本,并将其减少到将在网页中显示的URL?我想我可以得到<身体>内容,并通过char对该内容迭代char,删除任何与之相关的内容。和>(包括在内)。我简要地看了一下HTML Agiligy Pack,并且可能是一个解决方案,但对于我想要做的事情来说它似乎非常沉重。

同样,我想要的只是一串文字,表示屏幕上显示的任意网址文字。

2 个答案:

答案 0 :(得分:2)

我仍然会选择HTML Agility包 - 它在开始时会有一些工作,但最终会更灵活,设计更好,因为它会提供更多 - 例如XPath样式查询。

答案 1 :(得分:0)

如果您只需要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();
}