“`html
Python 股票代碼抓取:完整教學與最佳實踐(2025 更新)
在這篇文章中,我們將介紹如何使用 Python 爬蟲技術來抓取上市股票的代碼。雖然有些 API 可以獲取股票代碼,但通常需要申請並且可能需要付費。這次我們將利用 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:是的,這些股票代碼可以用於各種金融交易平台,但請確保數據的準確性。
“`
—