【问题标题】:Getting displayed text only from HTML仅从 HTML 获取显示的文本
【发布时间】:2009-10-28 02:53:09
【问题描述】:

有没有一种简单的方法,使用 C# 打开任意 URL,读入文本,并将其缩减为网页中显示的内容?我想我可以得到

内容,并逐个字符地迭代该内容,撕掉 (包括)之间的任何内容。我简要地查看了 HTML Agiligy Pack,可能是一个解决方案,但对于我正在尝试做的事情来说,它似乎非常繁重。

同样,我想要的只是一个文本字符串,它表示将在屏幕上显示的任意 URL 的文本。

【问题讨论】:

    标签: c# html parsing


    【解决方案1】:

    我仍然会选择 HTML Agility 包 - 一开始它需要做更多的工作,但它更灵活,最后的设计也更好,因为它会提供更多功能 - 例如。 XPath 样式查询。

    【讨论】:

      【解决方案2】:

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

      【讨论】:

        猜你喜欢
        • 2011-03-03
        • 1970-01-01
        • 2011-05-18
        • 1970-01-01
        • 2016-02-15
        • 2015-07-05
        • 2020-11-24
        • 1970-01-01
        • 2011-07-28
        相关资源
        最近更新 更多