新闻自动采集系统的基本功能是从网站上下载网页并经过分析提取网页上的内容。在上一篇文章中,我已经介绍了如何从下载网页,这篇文章主要介绍如何提取网页上的内容,实际上其实现主要是通过正由表达式的强大功能,找到网页上的内容,如何分离出来。
1、新建一个Windows应用程序,在窗体上放置三个TextBox控件,分别为:txtUrl,txtRegex,txtTag,两个Button控件,分别命名为button1,button2,一个RichTextBox控件和一个ListBox控件。
分别为button1和button2填写事件代码,其代码如下:
private void button1_Click(object sender, EventArgs e)
{
richTextBox1.Text = GetHtml(textBox1.Text);
}
/// <summary>
/// 获取html脚本
/// </summary>
/// <param name="url"></param>
/// <returns></returns>
private string GetHtml(string url)
{
WebRequest request = WebRequest.Create(url);
WebResponse response = request.GetResponse();
Stream stream = response.GetResponseStream();
StreamReader sr = new StreamReader(stream, Encoding.Default);
string html = sr.ReadToEnd();
return html;
}
/// <summary>
/// 提取标记内容
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
private void button2_Click(object sender, EventArgs e)
{
try
{
Regex reg = new Regex(txtRegex.Text);
if (reg.IsMatch(richTextBox1.Text))
{
foreach (Match match in reg.Matches(richTextBox1.Text))
{
listBox1.Items.Add(match.Groups[txtTag.Text].Value);//将提取内容放在listbox中
}
}
else
{
MessageBox.Show("没有找到你要的数据!");
}
}
catch (Exception ex)
{
MessageBox.Show(ex.Message);
}
}
下面是运行结果图: