[ASP.NET][C#]使用HtmlAgilityPack(1) 擷取網頁上的股票
增加 四個參考元件 ,等等寫程式會用到
using System.IO;
using HtmlAgilityPack;
using System.Text;
using System.Net;
using System.IO;
using HtmlAgilityPack;
using System.Text;
using System.Net;
//指定來源網頁 WebClient url = new WebClient(); //將網頁來源資料暫存到記憶體內 MemoryStream ms = new MemoryStream(url.DownloadData("http://tw.stock.yahoo.com/q/q?s=1101")); //以奇摩股市為例http://tw.stock.yahoo.com //1101 表示為股票代碼 // 使用預設編碼讀入 HTML HtmlDocument doc = new HtmlDocument(); doc.Load(ms, Encoding.Default); // 裝載第一層查詢結果 HtmlDocument hdc = new HtmlDocument(); //XPath 來解讀它 /html[1]/body[1]/center[1]/table[2]/tr[1]/td[1]/table[1] hdc.LoadHtml(doc.DocumentNode.SelectSingleNode("/html[1]/body[1]/center[1]/table[2]/tr[1]/td[1]/table[1]").InnerHtml); // 取得個股標頭 HtmlNodeCollection htnode = hdc.DocumentNode.SelectNodes("./tr[1]/th"); // 取得個股數值 string[] txt = hdc.DocumentNode.SelectSingleNode("./tr[2]").InnerText.Trim().Split('\n'); int i = 0; // 輸出資料 foreach (HtmlNode nodeHeader in htnode) { //將 "加到投資組合" 這個字串過濾掉 Response.Write(nodeHeader.InnerText + ":" + txt[i].Trim().Replace("加到投資組合", "") + " "); i++; } //清除資料 doc = null; hdc = null; url = null; ms.Close();
增加 四個參考元件 ,等等寫程式會用到
using System.IO;
using HtmlAgilityPack;
using System.Text;
using System.Net;
using System.IO;
using HtmlAgilityPack;
using System.Text;
using System.Net;
//指定來源網頁 WebClient url = new WebClient(); //將網頁來源資料暫存到記憶體內 MemoryStream ms = new MemoryStream(url.DownloadData("http://rate.bot.com.tw/Pages/Static/UIP003.zh-TW.htm")); //以台灣銀行為範例 // 使用預設編碼讀入 HTML HtmlDocument doc = new HtmlDocument(); doc.Load(ms, Encoding.Default); //取得現在的日期 Response.Write("現在時間:" + DateTime.Now + " "); // 在Html內表示換行 // 取得匯率 for(int x=3;x<=21;x++) { string txt1 = doc.DocumentNode.SelectSingleNode(@"/html[1]/body[1]/ul[1]/li[2]/center[1]/div[1]/div[2]/table[2]/tr[" + x + "]/td[1]").InnerText; string txt2 = doc.DocumentNode.SelectSingleNode(@"/html[1]/body[1]/ul[1]/li[2]/center[1]/div[1]/div[2]/table[2]/tr[" + x + "]/td[2]").InnerText; string txt3 = doc.DocumentNode.SelectSingleNode(@"/html[1]/body[1]/ul[1]/li[2]/center[1]/div[1]/div[2]/table[2]/tr[" + x + "]/td[3]").InnerText; string txt4 = doc.DocumentNode.SelectSingleNode(@"/html[1]/body[1]/ul[1]/li[2]/center[1]/div[1]/div[2]/table[2]/tr[" + x + "]/td[4]").InnerText; string txt5 = doc.DocumentNode.SelectSingleNode(@"/html[1]/body[1]/ul[1]/li[2]/center[1]/div[1]/div[2]/table[2]/tr[" + x + "]/td[5]").InnerText; string totle = string.Format("幣別:{0} ,買入現金匯率:{1} ,賣出即期匯率:{2} ,買入遠期匯率:{3} ,賣出歷史匯率:{4}", txt1, txt2, txt3, txt4, txt5); Response.Write(totle + " "); } //清除資料 doc = null; url = null; ms.Close();
HTML Agility Pack:簡單好用的快速 HTML Parser
http://htmlagilitypack.codeplex.com/http://msdn.microsoft.com/zh-tw/evalcenter/ee787055.aspx
如何在ASP.NET中抓取來自於其他網站的資料 ?
http://enews.url.com.tw/enews/45768
|
抓取網頁下的所有的src
http://blog.xuite.net/yan.kee/CSharp/30330315-%E6%8A%93%E5%8F%96%E7%B6%B2%E9%A0%81%E4%B8%8B%E7%9A%84%E6%89%80%E6%9C%89%3Cimg%3E%E7%9A%84src
[Windows Phone/C#] C# 網頁擷取資料 解析網頁標籤(HTML Parser )API -HTML Agility Pack 以Windows Phone 8 為例
http://www.dotblogs.com.tw/v6610688/archive/2013/11/02/parsing_html_by_html_agility_parser_on_windows_phone_8.aspx
http://kingjoy1235.pixnet.net/blog/post/29945811-asp.net-%E6%93%B7%E5%8F%96%E7%B6%B2%E9%A0%81-for-vb
如何抓取 證交所的資料 證交所網頁改版
[VB.NET]自動從網頁的原始碼取要的資料
[VB.NET]擷取網頁資料
http://tomshare.idv.tw/article/vb-net_read_html_data/http://kingjoy1235.pixnet.net/blog/post/29945811-asp.net-%E6%93%B7%E5%8F%96%E7%B6%B2%E9%A0%81-for-vb
沒有留言:
張貼留言