“`html

Python 股票代碼抓取:完整教學與最佳實踐(2025 更新)

在這篇文章中,我們將介紹如何使用 Python 爬蟲技術來抓取上市股票的代碼。雖然有些 API 可以獲取股票代碼,但通常需要申請並且可能需要付費。這次我們將利用 Python 的爬蟲功能,免費抓取所有股票代碼。

Python 股票代碼抓取範例

1. 找尋所有股票代碼網站

我們將使用以下網址來抓取股票代碼:[TWSE 股票代碼查詢](http://isin.twse.com.tw/isin/C_public.jsp?strMode=2)。這個網站提供了目前所有上市公司的股票代碼,並以簡單的 HTML 表格呈現,便於解析。

2. 使用 Python 解析 HTML 表格

我們將使用 `pandas` 套件的 `read_html` 函數來解析 HTML 表格。這個函數專門用於提取 HTML 中的 `

` 和 `

` 標籤。

“`python
import requests
import pandas as pd

# 獲取網頁內容
res = requests.get(“http://isin.twse.com.tw/isin/C_public.jsp?strMode=2”)

# 解析 HTML 表格
df = pd.read_html(res.text)[0] print(df)
“`

結果

這段程式碼將返回一個包含所有股票代碼的 DataFrame,但我們需要進一步清理數據。

解析股票代碼的結果

3. 有價證券代號填入欄位

我們的 DataFrame 中包含七個欄位,我們需要將這些欄位重新命名,以便以後的數據處理。

“`python
df.columns = [‘有價證券代號及名稱’, ‘國際證券辨識號碼(ISIN Code)’, ‘上市日’, ‘市場別’, ‘產業別’, ‘CFICode’, ‘備註’] “`

4. 過濾股票代碼

我們將提取出四位數的股票代碼。由於股票代碼和名稱之間存在空白字符,我們需要對字符串進行分割。

“`python
import re

for code in df[‘有價證券代號及名稱’]:
stackCode = code.split(‘ ’)
if len(stackCode) == 2 and re.match(r’^\d{4}$’, stackCode[0]):
print(stackCode[0], stackCode[1]) # 股票代碼和名稱
“`

5. 最終程式碼

以下是完整的程式碼,將所有步驟整合在一起:

“`python
import requests
import pandas as pd
import re

# 獲取網頁內容
res = requests.get(“http://isin.twse.com.tw/isin/C_public.jsp?strMode=2”)
df = pd.read_html(res.text)[0] df.columns = [‘有價證券代號及名稱’, ‘國際證券辨識號碼(ISIN Code)’, ‘上市日’, ‘市場別’, ‘產業別’, ‘CFICode’, ‘備註’]

# 儲存股票代碼
stock_code_dict = {}
for code in df[‘有價證券代號及名稱’]:
stackCode = code.split(‘ ’)
if len(stackCode) == 2 and re.match(r’^\d{4}$’, stackCode[0]):
stock_code_dict[stackCode[0]] = stackCode[1]

print(stock_code_dict)
“`

6. 輸出結果

股票代碼輸出結果

在這篇文章中,我們學會了如何使用 Python 爬取並解析上市股票的代碼,這些代碼可以進一步應用於交易策略等多種用途。

如需深入學習 Python 的相關知識,建議參考 [Python 程式設計教學](https://vocus.cc/article/5d9a2eaffd89780001d3b3b9) 和 [Python 爬蟲實作](https://miner.tw/python-web-scraping)。

Q&A(常見問題解答)

Q1:什麼是股票代碼?

A1:股票代碼是用來唯一標識股票的一組字母或數字,通常由交易所分配。

Q2:使用 Python 爬蟲抓取股票代碼是否合法?

A2:一般來說,使用爬蟲抓取公開網站的數據是合法的,但請遵守網站的使用條款和 robots.txt 規範。

Q3:我可以使用這些股票代碼來進行交易嗎?

A3:是的,這些股票代碼可以用於各種金融交易平台,但請確保數據的準確性。
“`

Categorized in: