在本教學中,我們將介紹如何使用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的股價資料,並輸出到控制台。
透過這個教學,你可以學會如何使用C#和HtmlAgilityPack套件來爬取台灣證券交易所網站上的股價資料。