股票O(jiān)HLC歷史數(shù)據(jù)爬取——Yahoo

OHLC 指 open,high,low,close,老外的網(wǎng)站數(shù)據(jù)規(guī)范,相比從國內的網(wǎng)站獲取股票、場內基金的數(shù)據(jù),yahoo更可靠,JSON的數(shù)據(jù)結構也使得獲取數(shù)據(jù)更方便、準確。

Yahoo API

過去python的pandas中直接提供了yahoo、google等數(shù)據(jù)的接口,pandas.io.data, 在《Python金融大數(shù)據(jù)分析》中有詳細介紹,現(xiàn)在該接口已經(jīng)移除,網(wǎng)上也有一些第三方的API,但也已經(jīng)很久沒有維護,失效了。

如果數(shù)據(jù)量不大,對頻率要求不高,可以考慮直接從Yahoo網(wǎng)頁直接提取數(shù)據(jù)。

API 接口

https://finance.yahoo.com/quote/510300.SS/history?period1=1511924498&period2=1543460498&interval=1d&filter=history&frequency=1d

510300.SS:股票代碼
1511924498:起始日時間戳
1543460498:截止日時間戳
1d:頻率,日

事先的處理

  • 日期轉化為時間戳:
start_date = int(dt.datetime.strptime(start_date, "%Y-%m-%d").timestamp())
end_date = int(dt.datetime.strptime(end_date, "%Y-%m-%d").timestamp())
  • 代碼轉換
tick_suffix_dict = {'SH':'SS',
                    'SZ':'SZ',
                    'HK':'HK'}
  • freq 問題的處理
freq_dict = {"D":"1d", # 日
             "w":"1wk", # 周
             "m":"1mo" # 月}
  • url
 url = "https://finance.yahoo.com/quote/{}/history?period1={}&period2={}&interval={}&filter=history&frequency={}".\
format(tickCode,start_date,end_date,frequency,frequency)

獲取JSON數(shù)據(jù)

 # 從網(wǎng)頁上獲取JSON數(shù)據(jù)
response = requests.get(url)
soup = BeautifulSoup(response.content,"lxml" )
    
script_json = json.loads(soup.find_all('script')[-3].text.split("\n")[5][16:-1])
prices_json = script_json['context']['dispatcher']['stores']['HistoricalPriceStore']['prices']

輸出DataFrame

 prices = pd.DataFrame(prices_json)
 prices['date'] = prices['date'].apply(lambda x: dt.date.fromtimestamp(x))
 prices.set_index('date',inplace = True)
 prices.sort_index(inplace = True)

結果示例

ohlc_hist('510300.SH','2018-1-1','2018-11-27','m')
image.png
最后編輯于
?著作權歸作者所有,轉載或內容合作請聯(lián)系作者
【社區(qū)內容提示】社區(qū)部分內容疑似由AI輔助生成,瀏覽時請結合常識與多方信息審慎甄別。
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發(fā)布,文章內容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務。

相關閱讀更多精彩內容

  • __ __ |__| _____ __ __ ┌...
    wangchuang2017閱讀 7,234評論 2 1
  • Spring Cloud為開發(fā)人員提供了快速構建分布式系統(tǒng)中一些常見模式的工具(例如配置管理,服務發(fā)現(xiàn),斷路器,智...
    卡卡羅2017閱讀 136,506評論 19 139
  • 關于Mongodb的全面總結 MongoDB的內部構造《MongoDB The Definitive Guide》...
    中v中閱讀 32,273評論 2 89
  • 上高中時候一關系很好的同學畢業(yè)后常年在外各地跑,最近回了鄒平,很多年未見自然少不了聚聚。要不總說鄒平真是小呢,她家...
    略略略dd閱讀 191評論 0 0
  • 星期一我和舅舅弟弟哥哥姐姐舅媽去運城逛,星期一早上,我們就出發(fā)了,今天天有點陰,所以今天就去李家大院,到了李家大院...
    周瑞博閱讀 264評論 1 2

友情鏈接更多精彩內容