[ASP.NET][C#]使用HtmlAgilityPack(3) 擷取網頁上永遠最新股票資訊-自動更新,3008以大立光為例

摘要:[ASP.NET][C#]使用HtmlAgilityPack(3) 擷取網頁上的永遠最新股票資訊-自動更新,3008以大立光為例




1.新增一個 WebForm1.aspx


2.在這個 WebForm1.aspx 內不用加任何元件



3.直接到 WebForm1.aspx.cs 內寫程式

增加 四個參考元件 ,等等寫程式會用到
using System.IO;
using HtmlAgilityPack;
using System.Text;
using System.Net;
 


4.HtmlAgilityPack 這邊出現了紅色毛毛蟲,不要緊

這是因為參考元件內沒有資料可以參考
只要把它下載回來新增進去就可以了
HtmlAgilityPack 下載
 


5. 點選瀏覽,找個下載後的檔案

剛下載回來路徑應該都是一樣的
路徑:HtmlAgilityPack.1.4.6\Net45

 


6. 點選 HtmlAgilityPack.dll 將它加入進來



7. 按確定



8. HtmlAgilityPack 加進來後,紅色毛毛蟲不見了



9. 開始寫程式了,寫在Page_Load內,讓網頁一執行是自動載入到頁面上


            //指定來源網頁
            WebClient url = new WebClient();
            //將網頁來源資料暫存到記憶體內
            MemoryStream ms = new MemoryStream(url.DownloadData("http://tw.stock.yahoo.com/q/q?s=3008"));
            //以奇摩股市為例http://tw.stock.yahoo.com,3008以大立光為例

            // 使用預設編碼讀入 HTML
            HtmlDocument doc = new HtmlDocument();
            doc.Load(ms, Encoding.Default);

            //XPath 來解讀它 /html[1]/body[1]/center[1]/table[2]/tr[1]/td[1]/table[1]
            doc.LoadHtml(doc.DocumentNode.SelectSingleNode("/html[1]/body[1]/center[1]/table[2]/tr[1]/td[1]/table[1]").InnerHtml);

            // 取得個股標頭
            HtmlNodeCollection htnode = doc.DocumentNode.SelectNodes("./tr[1]/th");
            // 取得個股數值
            string[] txt = doc.DocumentNode.SelectSingleNode("./tr[2]").InnerText.Trim().Split('\n');

            int i = 0;

            // 輸出資料
            foreach (HtmlNode nodeHeader in htnode)
            {
                //將 "加到投資組合" 這個字串過濾掉
                Response.Write(nodeHeader.InnerText + ":" + txt[i].Trim().Replace("加到投資組合", "") + "<br />");
                i++;
            }

            //清除資料
            doc = null;
            url = null;
            ms.Close();

            //網頁更新
            HtmlMeta meta = new HtmlMeta();
            meta.Attributes.Add("http-equiv", "refresh");
            //設定秒數,5秒後執行頁面更新
            meta.Content = "5";
            this.Header.Controls.Add(meta);


 


10. 寫完,按編譯執行看看 或 按 F5 快速鍵



11. 結果,是不是即時抓到一支股票了




以上參考來自

HTML Agility Pack:簡單好用的快速 HTML Parser
HtmlAgilityPack 下載