----------
StudyNote: https://tw.stock.yahoo.com/q/q?s=2330
private void Getstock()
{
//int i = 0;
try
{
//1.指定要開啟的網站,然後使用MemoryStream暫存 此範例為奇摩台積電股票
WebClient climb = new WebClient();
MemoryStream ms = new MemoryStream(climb.DownloadData("http://tw.stock.yahoo.com/q/q?s=2330"));
//2.使用HtmlDocument載入第一層網頁資料
HtmlDocument doc = new HtmlDocument();
doc.Load(ms, Encoding.Default);
HtmlDocument docStockContext = new HtmlDocument();
StudyNote: LoadHtml()取得(第2個Table的Cell(1,1)的第1個)Table
docStockContext.LoadHtml(doc.DocumentNode.SelectSingleNode("html[1]/body[1]/center[1]/table[2]/tr[1]/td[1]/table[1]").InnerHtml);
//3.根據資料在哪個標籤就讀取標籤的內容 我這裡使用陣列儲存讀到的資料
HtmlNodeCollection nodeHeaders = docStockContext.DocumentNode.SelectNodes("./tr[1]/th");
String[] sValues = docStockContext.DocumentNode.SelectSingleNode("./tr[2]").InnerText.Trim().Split(' ');
//※可以使用這個迴圈觀察資料的內容以及分割情況
/*foreach(String s in sValues){
this.Label9.Text += s +" "+i++ +" ";
}*/
//4.最後顯示資料 可以使用我存取的陣列來呈現 或是把剛剛讀取標籤的內容轉成字串來呈現
this.Label01.Text = docStockContext.DocumentNode.SelectSingleNode("./tr[2]/td[1]").InnerText.Trim().ToString().Substring(0,4);
this.Label03.Text = sValues[16].Trim();
this.Label04.Text = sValues[128].Trim();
this.Label05.Text = sValues[144].Trim();
this.Label06.Text = sValues[160].Trim();
this.Label07.Text = sValues[32].Trim() + " ( " + sValues[80].Trim() + " )";
this.Label08.Text = sValues[96].Trim();
//※顏色編輯如果漲停就紅色 跌就綠色
if (sValues[80].Trim().IndexOf('△') > -1)
{
Label07.ForeColor = System.Drawing.Color.Red;
}
else
{
Label07.ForeColor = System.Drawing.Color.Green;
}
}
catch (Exception e)
{
this.Label9.Text = e.Message.ToString();
}
}
----------
StudyNote: html[1] ? 不是 0 ?
docStockContext.LoadHtml(doc.DocumentNode.SelectSingleNode("html[1]/body[1]/center[1]/table[2]/tr[1]/td[1]/table[1]").InnerHtml);
Yahoo!奇摩股市
----------
StudyNote: html[1]/body[1]/center[1] ? 都是 One-Based ?
docStockContext.LoadHtml(doc.DocumentNode.SelectSingleNode("html[1]/body[1]/center[1]/table[2]/tr[1]/td[1]/table[1]").InnerHtml);
StudyNote: 第2個Table的Cell(1,1)的第1個Table
StudyNote: LoadHtml()取得(第2個Table的Cell(1,1)的第1個)Table
docStockContext.LoadHtml(doc.DocumentNode.SelectSingleNode("html[1]/body[1]/center[1]/table[2]/tr[1]/td[1]/table[1]").InnerHtml);
HtmlNodeCollection nodeHeaders = docStockContext.DocumentNode.SelectNodes("./tr[1]/th");
股票
代號 |
時間 |
成交 |
買進 |
賣出 |
漲跌 |
張數 |
昨收 |
開盤 |
最高 |
最低 |
個股資料 |
StudyNote: String[] sValues = docStockContext.DocumentNode.SelectSingleNode("./tr[2]").InnerText.Trim().Split(' ');
2330台積電
加到投資組合
|
14:30 |
606 |
606 |
607 |
▽29 |
111,721 |
635 |
613 |
618 |
606 |
成交彙整
技術 新聞
基本 籌碼
個股健診 |
|