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

更新於 發佈於 閱讀時間約 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套件來爬取台灣證券交易所網站上的股價資料。

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

































































程式輕鬆玩 的其他內容
在程式設計中,我們經常會遇到需要重複執行某段程式碼的情況,例如列印星期幾、處理資料、或者檢查使用者輸入。為了有效地處理這類任務,我們可以使用迴圈。在 C# 中,最常見的迴圈包括 for 迴圈和 while 迴圈。本文將介紹這兩種迴圈的基本語法和應用場景。
在開發應用程式時,常常需要設定一些參數或選項,以便於後續調整和管理。在 .NET 中,我們可以使用 App.config 檔案來存儲這些設定,並且可以通過 C# 代碼來讀取和寫入這些設定。本文將介紹如何使用 C# 操作 App.config 檔案中的設定。
在這篇教學中,我們將使用 C# 和 Microsoft.Office.Interop.Excel 庫將圖片插入到 Excel 試算表中。
在進行資訊輸入的過程中,經常需要在不同語言的文字之間切換輸入法,這可能會影響效率。不過,透過程式設計的方法,我們可以實現在選取到需要輸入中文的輸入框時自動切換到中文輸入法,讓操作更加便利。在這篇文章中,我們將介紹兩種實現自動切換中文輸入法的方法,一種是切換輸入法,另一種是使用IME輸入法。
在C#程式開發中,有時候我們需要透過Outlook來發送郵件。這篇教學將會教你如何使用Microsoft.Office.Interop.Outlook來完成這個任務。
在開發應用程式時,經常會遇到需要調整圖片大小以節省空間或加快加載速度的情況。本教學將介紹如何使用 C# 語言來壓縮圖片並調整其大小,以便在應用程式中使用。
在程式設計中,我們經常會遇到需要重複執行某段程式碼的情況,例如列印星期幾、處理資料、或者檢查使用者輸入。為了有效地處理這類任務,我們可以使用迴圈。在 C# 中,最常見的迴圈包括 for 迴圈和 while 迴圈。本文將介紹這兩種迴圈的基本語法和應用場景。
在開發應用程式時,常常需要設定一些參數或選項,以便於後續調整和管理。在 .NET 中,我們可以使用 App.config 檔案來存儲這些設定,並且可以通過 C# 代碼來讀取和寫入這些設定。本文將介紹如何使用 C# 操作 App.config 檔案中的設定。
在這篇教學中,我們將使用 C# 和 Microsoft.Office.Interop.Excel 庫將圖片插入到 Excel 試算表中。
在進行資訊輸入的過程中,經常需要在不同語言的文字之間切換輸入法,這可能會影響效率。不過,透過程式設計的方法,我們可以實現在選取到需要輸入中文的輸入框時自動切換到中文輸入法,讓操作更加便利。在這篇文章中,我們將介紹兩種實現自動切換中文輸入法的方法,一種是切換輸入法,另一種是使用IME輸入法。
在C#程式開發中,有時候我們需要透過Outlook來發送郵件。這篇教學將會教你如何使用Microsoft.Office.Interop.Outlook來完成這個任務。
在開發應用程式時,經常會遇到需要調整圖片大小以節省空間或加快加載速度的情況。本教學將介紹如何使用 C# 語言來壓縮圖片並調整其大小,以便在應用程式中使用。
你可能也想看
Google News 追蹤
Thumbnail
現代社會跟以前不同了,人人都有一支手機,只要打開就可以獲得各種資訊。過去想要辦卡或是開戶就要跑一趟銀行,然而如今科技快速發展之下,金融App無聲無息地進到你生活中。但同樣的,每一家銀行都有自己的App時,我們又該如何選擇呢?(本文係由國泰世華銀行邀約) 今天我會用不同角度帶大家看這款國泰世華CUB
Thumbnail
在設計與印刷的過程中,確保圖像的清晰度與精確度是非常重要的。而這一切的關鍵之一,就是使用矢量圖形。無論是商業印刷還是數位設計,矢量圖形都能為您的設計提供更加清晰、精確的視覺效果,避免在印刷過程中出現像素化的問題。這篇文章將介紹矢量圖形的好處,並說明為何它能有效地解決印刷中的像素化問題,對設計師和印刷
Thumbnail
本文探討如何快速搭建 Graylog 和 Opensearch 以滿足專案需求,並詳細介紹日誌管理、手動備份、快照設定及自動備份的步驟。通過設置 Docker 環境,解決權限不足問題,確保系統的穩定備份與恢復功能。讀者將學會如何有效管理日誌數據和進行必要的快照操作,提升系統的可靠性和數據安全性。
Thumbnail
目前多數產品都使用數據驅動的商業環境,不論是面向企業(B 端)還是面向消費者(C 端)的產品,怎麼看數據、如何使用數據,都是產品經理需要了解的議題,這篇會分享我在 B 端和 C 端的產品經歷,各自會面對到什麼數據場景。
Thumbnail
校友會商城VIP折扣碼的使用和好處。分享我在校友會商城購物的美好體驗,介紹VIP折扣碼的使用和好處。VIP折扣碼讓您享受更多優惠,還能通過分享折扣碼賺取被動收入。
Thumbnail
c文組女生 如何善用 figma 和 GitHub 幸福課程 幸福教練黃老師 潮資訊媒體 社群編輯 文組女生可以善用 Figma 和 GitHub 來提升團隊協作和專案管理的效率。以下是一些建議: #Figma: 設計協作: Figma 是一個協作性極強的設
Thumbnail
Groupmean centering是一種常用的資料預處理方法,特別是多層次分析,若要使用Rights & Sterba (2019)(2019) 發展出R2 (R&S),要對需要將層次1的變項和交互作用都 Groupmean centering。本文介紹使用R和SPSS操作方法
Thumbnail
你想要搭建一個既經濟實惠、高性能、可擴展且安全的網站,而又無需管理繁瑣後台的工作和懂編碼技術嗎? 今天,我將分享一個高性價比的解決方案,幫助你在微軟 Azure Static App靜態應用的服務上,使用 Hugo 構建一個高性能且安全的網站。 最棒的是什麼? 你甚至不需要了解任何編程知識
Thumbnail
這篇文章會展示一下如何使用現代化工具,快速把論文上的公式轉換成程式碼 1.首先到 https://accounts.mathpix.com/login 網站註冊一個帳號並下載snipping 這個軟體是專門讓使用者利用截圖的方式把數學式子轉化成LATEX格式 我以一個論文看到的演算法為範例 好然後
Thumbnail
2023年2月20日,紐西蘭環保署(EPA)計畫將全氟己烷磺酸(PFHxS)及其鹽類和相關化合物納入《有害物質和有機體法案》(HSNO)管控,並就此發起線上意見徵詢,徵詢截止日為4月5日。
Thumbnail
現代社會跟以前不同了,人人都有一支手機,只要打開就可以獲得各種資訊。過去想要辦卡或是開戶就要跑一趟銀行,然而如今科技快速發展之下,金融App無聲無息地進到你生活中。但同樣的,每一家銀行都有自己的App時,我們又該如何選擇呢?(本文係由國泰世華銀行邀約) 今天我會用不同角度帶大家看這款國泰世華CUB
Thumbnail
在設計與印刷的過程中,確保圖像的清晰度與精確度是非常重要的。而這一切的關鍵之一,就是使用矢量圖形。無論是商業印刷還是數位設計,矢量圖形都能為您的設計提供更加清晰、精確的視覺效果,避免在印刷過程中出現像素化的問題。這篇文章將介紹矢量圖形的好處,並說明為何它能有效地解決印刷中的像素化問題,對設計師和印刷
Thumbnail
本文探討如何快速搭建 Graylog 和 Opensearch 以滿足專案需求,並詳細介紹日誌管理、手動備份、快照設定及自動備份的步驟。通過設置 Docker 環境,解決權限不足問題,確保系統的穩定備份與恢復功能。讀者將學會如何有效管理日誌數據和進行必要的快照操作,提升系統的可靠性和數據安全性。
Thumbnail
目前多數產品都使用數據驅動的商業環境,不論是面向企業(B 端)還是面向消費者(C 端)的產品,怎麼看數據、如何使用數據,都是產品經理需要了解的議題,這篇會分享我在 B 端和 C 端的產品經歷,各自會面對到什麼數據場景。
Thumbnail
校友會商城VIP折扣碼的使用和好處。分享我在校友會商城購物的美好體驗,介紹VIP折扣碼的使用和好處。VIP折扣碼讓您享受更多優惠,還能通過分享折扣碼賺取被動收入。
Thumbnail
c文組女生 如何善用 figma 和 GitHub 幸福課程 幸福教練黃老師 潮資訊媒體 社群編輯 文組女生可以善用 Figma 和 GitHub 來提升團隊協作和專案管理的效率。以下是一些建議: #Figma: 設計協作: Figma 是一個協作性極強的設
Thumbnail
Groupmean centering是一種常用的資料預處理方法,特別是多層次分析,若要使用Rights & Sterba (2019)(2019) 發展出R2 (R&S),要對需要將層次1的變項和交互作用都 Groupmean centering。本文介紹使用R和SPSS操作方法
Thumbnail
你想要搭建一個既經濟實惠、高性能、可擴展且安全的網站,而又無需管理繁瑣後台的工作和懂編碼技術嗎? 今天,我將分享一個高性價比的解決方案,幫助你在微軟 Azure Static App靜態應用的服務上,使用 Hugo 構建一個高性能且安全的網站。 最棒的是什麼? 你甚至不需要了解任何編程知識
Thumbnail
這篇文章會展示一下如何使用現代化工具,快速把論文上的公式轉換成程式碼 1.首先到 https://accounts.mathpix.com/login 網站註冊一個帳號並下載snipping 這個軟體是專門讓使用者利用截圖的方式把數學式子轉化成LATEX格式 我以一個論文看到的演算法為範例 好然後
Thumbnail
2023年2月20日,紐西蘭環保署(EPA)計畫將全氟己烷磺酸(PFHxS)及其鹽類和相關化合物納入《有害物質和有機體法案》(HSNO)管控,並就此發起線上意見徵詢,徵詢截止日為4月5日。