2024-02-04|閱讀時間 ‧ 約 24 分鐘

使用C#和HtmlAgilityPack套件爬取台灣證券交易所股價資料

在本教學中,我們將介紹如何使用C#語言以及HtmlAgilityPack套件來爬取台灣證券交易所網站上特定股票的股價資料。以下是我們將要完成的步驟:


設定專案及安裝套件

首先,我們需要建立一個新的C#專案。打開Visual Studio,建立一個新的Windows Form或Console專案。接著,我們需要安裝HtmlAgilityPack套件。在NuGet套件管理器中,搜索並安裝HtmlAgilityPack。

編寫程式碼

接下來,我們將編寫程式碼來爬取股價資料。請在程式中加入以下程式碼:

using System;
using System.Threading.Tasks;
using HtmlAgilityPack;

namespace StockPriceCrawler
{
class Program
{
static async Task Main(string[] args)
{
var stockCode = "2330"; // 要查詢的股票代號
var url = $"https://www.twse.com.tw/exchangeReport/STOCK_DAY?response=html&stockNo={stockCode}";
var config = Configuration.Default.WithDefaultLoader(); // 建立HtmlAgilityPack套件的設定物件
var context = BrowsingContext.New(config); // 建立BrowsingContext物件,用於載入網頁並解析
var document = await context.OpenAsync(url); // 開啟查詢網址所指向的網頁,取得網頁的Html文檔
var table = document.QuerySelector<IHtmlTableElement>("table"); // 取得表格元素
var rows = table.Rows; // 取得表格所有的列
var stockStr = ""; // 用來儲存股價資料的字串
foreach (var row in rows) // 逐一遍歷表格中的每一列
{
var cells = row.Cells; // 取得每一列的所有欄位
foreach (var cell in cells) // 逐一遍歷每一列中的欄位資料
{
stockStr += cell.TextContent + "\t"; // 將欄位資料拼接成字串,以Tab分隔
}
stockStr += "\n"; // 換行
}
Console.WriteLine(stockStr);
}
}
}

執行程式

完成程式碼後,我們可以按下F5鍵執行程式。程式將會爬取台灣證券交易所網站上股票代號為2330的股價資料,並輸出到控制台。

注意事項

  • 請確保安裝了HtmlAgilityPack套件。
  • 請確保網頁結構沒有變化,否則可能需要調整程式碼以匹配新的結構。

透過這個教學,你可以學會如何使用C#和HtmlAgilityPack套件來爬取台灣證券交易所網站上的股價資料。

分享至
成為作者繼續創作的動力吧!
目標是讓C#程式設計變得容易理解且有趣。透過簡潔明瞭的筆記和實際範例,引導您掌握基礎概念,從而建立堅實的程式設計基礎。
© 2024 vocus All rights reserved.