股票
使用 ISIN 辨識 yahoo Finance 的股票
我正在收集股票數據以供私人分析。我在https://www.xetra.com/xetra-de/instrumente/alle-handelbaren-instrumente/boersefrankfurt找到了一個非常多的庫存清單
但問題是它們的 ISIN 是唯一標識的,因為它在我的位置,德國,相當常見。但是,當從 yahoo Finance 請求數據時,需要他們的股票程式碼來建構 URL,但是當您在他們的搜尋欄位中輸入 ISIN 時,您會毫不費力地獲得正確的輸出。
截至目前,我使用 url 通過 html 請求站點並解析它以獲取資訊。
我正在尋找建議
- 為 yahoofinance(或同樣快速的提供商)建構一個帶有 ISIN 的 URL
- 將 ISIN 映射到相關的股票程式碼
- 從 yahoofinance 檢索數據的任何其他方法,例如開源庫
- 其他實時交易資訊來源,最重要的是目前價格
謝謝
使用他們的搜尋端點接縫可以正常工作。
def get_symbol_for_isin(isin): url = 'https://query1.finance.yahoo.com/v1/finance/search' headers = { 'User-Agent': 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/98.0.4758.109 Safari/537.36', } params = dict( q=isin, quotesCount=1, newsCount=0, listsCount=0, quotesQueryId='tss_match_phrase_query' ) resp = requests.get(url=url, headers=headers, params=params) data = resp.json() if 'quotes' in data and len(data['quotes']) > 0: return data['quotes'][0]['symbol'] else: return None
只需使用符號(在 CSV 文件中,它位於“助記符”列中)並
.F
為法蘭克福證券交易所附加一個後綴。注意:由於抓取 API 的成本很高(儘管可以批量檢索多達 500 個交易品種的報價),您通常希望將查找限制在可以與您的經紀商交易的交易品種,從而確保您只獲取數據您可以實際交易的符號。(在我最初的刮板中,我忽略了這一點,後來意識到我正在獲取大量無法交易的符號。)