如何从StreamReader for Analysis创建字符串

时间:2014-12-15 23:19:52

标签: c# string streamreader

我希望能够搜索给定的HTML并找到某些标记

namespace WindowsFormsApplication1
{
    public partial class Form1 : Form
    {
        public Form1()
        {
            InitializeComponent();
        }

        private void button1_Click(object sender, EventArgs e)
        {
            string url = "http://www.google.com";
            HttpWebRequest request = (HttpWebRequest)WebRequest.Create(url);
            HttpWebResponse response = (HttpWebResponse)request.GetResponse();
            StreamReader sr = new StreamReader(response.GetResponseStream());
            richTextBox1.Text = sr.ReadToEnd();
            sr.Close();

        }
    }
}

如何将StreamReader中的内容转换为字符串,以便我可以进行进一步的分析......

3 个答案:

答案 0 :(得分:2)

看看HTML Agility Pack。使用敏捷包可以获得比使用字符串函数自己解析html更好的结果。

答案 1 :(得分:0)

由于您正在使用Windows窗体应用程序,因此请使用WebBrowser控件。由于您可以访问DOM,因此很容易找到元素。

答案 2 :(得分:0)

这是来自控制台应用的代码段:

以下是我通过 HttpWebRequest 获取强力球主页的代码,并使用 RegEx 查找累积奖金,&阅读当前的累积奖金。

希望这会对你有所帮助。

  string url = ConfigurationManager.AppSettings.GetValues("PBHomePage")[0];
  HttpWebRequest webReq = (HttpWebRequest)WebRequest.Create(url);
  webReq.ContentType = "text/html";
  Regex regex = new Regex("(<font size=\"6\" color=\"#FFFFFF\"><strong>\\$)(\\d+)(\\.*)(\\d*)(\\s+Million</strong></font>)");

  try
  {
    WebResponse response = webReq.GetResponse();
    StreamReader reader = new StreamReader(response.GetResponseStream());
    string webPage = reader.ReadToEnd();

    if (!regex.IsMatch(webPage)) { return null; }

    GroupCollection groups = regex.Match(webPage).Groups;

    StringBuilder strJackpot = new StringBuilder(groups[2].Value);
    if (!string.IsNullOrEmpty(groups[3].Value) && !string.IsNullOrEmpty(groups[4].Value))
    {
      strJackpot.Append(groups[3].Value + groups[4].Value);
    }
    jackpot = double.Parse(strJackpot.ToString());
  }
  catch (WebException ex)
  {
    Console.WriteLine("Error in getting Latest Jackpot");
  }