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

2024/02/04閱讀時間約 4 分鐘

在本教學中,我們將介紹如何使用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套件來爬取台灣證券交易所網站上的股價資料。

50會員
99內容數
這裡將以輕鬆風格,深入探討程式設計的基礎和高級概念。從程式語言到演算法,我們將以易懂的方式解釋每個主題,讓你輕鬆掌握。無論你是初學者或有經驗者,都能在這裡找到適合你的內容。無論你的目標是成為專業開發者還是擴展知識,我們都會陪伴你一同成長!
留言0
查看全部
發表第一個留言支持創作者!