是否可以屏幕刮擦并仅显示一个div / Table

时间:2011-08-31 20:17:27

标签: c#

是否可以使用HTTPWebRequest或webclient进行webscrape并仅显示特定的div或表,如下例所示?

这是来自其他div页面的一个div,只是为了给你一个结构示例。

     <div id="DIV5">

            <table cellspacing="0" cellpadding="0"><tbody>

                <tr class="">

                <tr class="last">

            </table>

</div>

我有这个简单的代码,它显示页面中的HTML,但我正在寻找一种只显示一个DIV或一个表的方法。

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

        private void button1_Click(object sender, EventArgs e)
        {
            string html = this.GetWebsiteHtml(this.textBox1.Text);
            this.richTextBox1.Text = html;
        }

        private string GetWebsiteHtml(string url)
        {
            WebRequest request = WebRequest.Create(url);
            WebResponse response = request.GetResponse();
            Stream stream = response.GetResponseStream();
            StreamReader reader = new StreamReader(stream);
            string result = reader.ReadToEnd();
            stream.Dispose();
            reader.Dispose();
            return result;
        }




    }
}

1 个答案:

答案 0 :(得分:1)

一般来说,一旦你有了HTML文档(存储在你的result变量中),就可以解析它并只显示你想要的部分。

我建议您使用专用的HTML解析器,例如HTML Agility Pack - 这样您就可以轻松地只提取您感兴趣的HTML。