程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> .NET網頁編程 >> ASP.NET >> ASP.NET基礎 >> C# 實現抓取網站頁面內容的實例方法

C# 實現抓取網站頁面內容的實例方法

編輯:ASP.NET基礎

抓取新浪網的新聞欄目,如圖所示:

使用 谷歌浏覽器的查看源代碼: 通過分析得知,我們所要找的內容在以下兩個標簽之間:
復制代碼 代碼如下:
<!-- publish_helper name='要聞-新聞' p_id='1' t_id='850' d_id='1' -->

內容。。。。

<!-- publish_helper name='要聞-財經' p_id='30' t_id='98' d_id='1' -->

如圖所示:

內容。。。。

使用VS建立一個如圖所示的網站:

我們下載網絡數據主要通過   WebClient 類來實現。

使用下面源代碼獲取我們選擇的內容:
復制代碼 代碼如下:
protected void Enter_Click(object sender, EventArgs e)
        {
            WebClient we = new WebClient();  //主要使用WebClient類
            byte[] myDataBuffer;
            myDataBuffer = we.DownloadData(txtURL.Text);  //該方法返回的是 字節數組,所以需要定義一個byte[]
            string download = Encoding.Default.GetString(myDataBuffer);  //對下載的數據進行編碼

          
            //通過查詢源代碼,獲取某兩個值之間的新聞內容
            int startIndex = download.IndexOf("<!-- publish_helper name='要聞-新聞' p_id='1' t_id='850' d_id='1' -->");
            int endIndex = download.IndexOf("<!-- publish_helper name='要聞-財經' p_id='30' t_id='98' d_id='1' -->");

            string temp = download.Substring(startIndex, endIndex - startIndex + 1);  //截取新聞內容

            lblMessage.Text = temp;//顯示所截取的新聞內容
        }

效果如圖:

最後: 除了把下載的數據保存為文本以外,還可以保存為 文件類型 和 流 類型。
復制代碼 代碼如下:
WebClient wc = new WebClient();
            wc.DownloadFile(TextBox1.Text, @"F:\test.txt");
            Label1.Text = "文件下載完成";

復制代碼 代碼如下:
WebClient wc = new WebClient();
            Stream  s =  wc.OpenRead(TextBox1.Text);

            StreamReader sr = new StreamReader(s);
            Label1.Text =  sr.ReadToEnd();

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved