各位知道目前台股上市上櫃的公司有多少嗎?
今天用 Python 來抓取台灣證券交易所上市上櫃的公司清單。
台灣證券交易所公佈的上市證券國際證券辨識號碼一覽表網頁在:
https://isin.twse.com.tw/isin/C_public.jsp?strMode=2
1.首先先載入相關套件:
import requests
import pandas as pd
2. 將html 網頁資料抓下來存成 dataframe資料格式:
res = requests.get("http://isin.twse.com.tw/isin/C_public.jsp?strMode=2")
df = pd.read_html(res.text)[0]
df
3. 接著設定欄位(column)名稱:
df.columns = df.iloc[0]
df
4. 刪除第一行(Row):
df = df.iloc[2:]
df
5. 接著要找出CFI code 是 ESVUFR 的資料,其中CFI代碼CBCIXU是不動產投資信託,CEOGEU是ETF . . .
df = df[df['CFICode'] == 'ESVUFR']
df
6. 現在資料有977筆,就是上市公司資料,接著我們要將索引序號重新編排一下:
df = df.reset_index(drop=True)
df
7. 最後我們把這寫成一個 function:
def crawler_stock_name(req_code):
# req_code:2 上市,
# req_code:4 上櫃
res = requests.get("http://isin.twse.com.tw/isin/C_public.jsp?strMode=" + str(req_code))
df = pd.read_html(res.text)[0]
# 設定column名稱
df.columns = df.iloc[0]
# 刪除第一行
df = df.iloc[2:]
# 篩選資料
df = df[df['CFICode'] == 'ESVUFR']
# index 序號重新編號
df = df.reset_index(drop=True)
return df
要取得上市公司的資料就執行:
df = crawler_stock_name(2)
df
要取得上櫃公司的資料就執行:
df = crawler_stock_name(4)
df
下篇再來講一下如何將股票代碼和公司名稱做一個索引。
你可以參考:
1. 使用 Python 製作台股代碼與股票名稱對應字典(二)
感謝~
回覆刪除不客氣
刪除作者已經移除這則留言。
回覆刪除