1. 程式人生 > >股票資料抓取介面文章轉載

股票資料抓取介面文章轉載

http://blog.csdn.net/xp5xp6/article/details/53121481

http://blog.sina.com.cn/s/articlelist_2127818045_10_1.html

最近在做股票分析系統,資料獲取源頭成了一大問題,經過仔細的研究發現了很多獲取辦法,這裡整理一下,方便後來者使用。

獲取股票資料的源頭主要有:資料超市、雅虎、新浪、Google、和訊、搜狐、ChinaStockWebService、東方財富客戶端、證券之星、網易財經。

資料超市

2016年5月6日更新。根據最近頻繁出現的資料超市,可以無限制獲取相關資料,而不再需要使用爬蟲等方式獲取,這樣不僅節省了極大資源,也有利於遍歷資料。

具體的方法不再贅述,列出來相關網站清單,開發者可自行到這些網站查詢呼叫方法。

聚合資料 https://www.juhe.cn/

百度API資料 http://apistore.baidu.com/

發源地 http://www.finndy.com/

筆者這裡推薦使用聚合資料,其次配合百度API使用即可。

雅虎

缺點:某些美國節假日資料會短缺;呼叫次數不能超過每分鐘200次,否則會被警告並封鎖IP地址;自定義列獲取方法只能獲取美股資料。

優點:資料最標準化,可以獲取其他國家市場資料;返回資料型別可自定義組合。

方法1:http://table.finance.yahoo.com/table.csv?s=股票程式碼

返回結果:CSV格式的檔案,返回列依次是“日期、開盤價、最高價、最低價、收盤價、成交量、復權價”。

其股票程式碼需要在末尾標記所屬市場,如上證指數股票程式碼為600000.ss、深圳成指為399001.sz。

方法2:http://finance.yahoo.com/d/quotes.csv?s=股票程式碼&f=[自定義列]

返回結果:CSV格式的檔案,最後一個交易日的資料,列根據設定的自定義列返回。

例如:http://finance.yahoo.com/d/quotes.csv?s=TWTR&f=nt1,返回TWTR股票的名稱和最後交易時間。

方法3:http://quote.yahoo.com/d/quotes.csv?s=
股票程式碼&f=[自定義列]

和方法2類似。

ChinaStockWebService

缺點:不穩定,經常出現維護停止服務;只能獲取當前行情和歷史走勢圖。

優點:國內資料提供商,以XML響應,速度較快。

方法參考:http://www.webxml.com.cn/WebServices/ChinaStockWebService.asmx

東方財富客戶端

缺點:手動操作匯出;沒有歷史資料。

優點:資料全面,速度較快。

方法:通過東方財富網客戶端自帶的功能,匯出資料。

相對於其他獲取方式,這種獲取速度非常快,出錯率非常低,而且資料非常全面,如果定期整理可以作為非常有效的資料使用。

新浪

缺點:歷史股價資料不夠完整,只能獲取最近1023個數據節點。

優點:速度非常快;可以獲取行情圖片;返回JSON,容易處理;可以獲取歷史的分價圖資料和分時買賣交易列。

方法1:HTTP://HQ.SINAJS.CN/LIST=[股票程式碼]

返回結果:JSON實時資料,以逗號隔開相關資料,資料依次是“股票名稱、今日開盤價、昨日收盤價、當前價格、今日最高價、今日最低價、競買價、競賣價、成交股數、成交金額、買1手、買1報價、買2手、買2報價、…、買5報價、…、賣5報價、日期、時間”。

獲取當前的股票行情,如http://hq.sinajs.cn/list=sh601006,注意新浪區分滬深是以sh和sz區分。

方法2:獲取各個時間段行情圖。

檢視日K線圖:http://image.sinajs.cn/newchart/daily/n/sh601006.gif分時線的查詢:http://image.sinajs.cn/newchart/min/n/sh000001.gif日K線查詢:http://image.sinajs.cn/newchart/daily/n/sh000001.gif周K線查詢:http://image.sinajs.cn/newchart/weekly/n/sh000001.gif月K線查詢:http://image.sinajs.cn/newchart/monthly/n/sh000001.gif

方法3:http://money.finance.sina.com.cn/quotes_service/api/json_v2.php/CN_MarketData.getKLineData?symbol=[市場][股票程式碼]&scale=[週期]&ma=no&datalen=[長度]

返回結果:獲取5、10、30、60分鐘JSON資料;day日期、open開盤價、high最高價、low最低價、close收盤價、volume成交量;向前復權的資料。

注意,最多隻能獲取最近的1023個數據節點。

例如,http://money.finance.sina.com.cn/quotes_service/api/json_v2.php/CN_MarketData.getKLineData?symbol=sz002095&scale=60&ma=no&datalen=1023,獲取深圳市場002095股票的60分鐘資料,獲取最近的1023個節點。

方法4:http://finance.sina.com.cn/realstock/company/[市場][股票程式碼]/[復權].js?d=[日期]

[復權]:qianfuquan-前復權;houfuquan-後復權。

返回結果:股票日期的股價JSON資料。

例如,http://finance.sina.com.cn/realstock/company/sz002095/qianfuquan.js?d=2015-06-16,獲取深圳市場002095股票的前復權2015-06-16的資料。

注意,無法獲取未復權的資料。

注意,需要對返回資料進行處理才能使用,新浪會在末尾加入註釋語句,打亂日期資料,key值需要自行加入雙引號,否則無法解析JSON。

注意,由於新浪的周線和月線資料,是以股票日線所有資料直接計算得到的,所以無法直接通過API獲取周線和月線資料,需要自行處理。

方法5:http://market.finance.sina.com.cn/downxls.php?date=[日期]&symbol=[市場][股票程式碼]

返回資料:XLS檔案;股票歷史成交明細。

例如,http://market.finance.sina.com.cn/downxls.php?date=2015-06-15&symbol=sz002095,獲取2015-06-15日期的深圳市長002095資料。

方法6:http://market.finance.sina.com.cn/pricehis.php?symbol=[市場][股票程式碼]&startdate=[開始日期]&enddate=[結束日期]

返回資料:HTML文字;指定日期範圍內的股票分價表。

例如,http://market.finance.sina.com.cn/pricehis.php?symbol=sh600900&startdate=2011-08-17&enddate=2011-08-19,獲取上證600900股票2011-08-17到2011-08-19日期的分價資料。

和訊

(待續)

Google

Google資料其實是從新浪獲取的,所以可以優先考慮從新浪獲取,如果喜歡google的API,再考慮。

優點:資料可靠。

缺點:歷史資料只能通過分解HTML頁面獲取;國外資料來源速度慢。

方法1:從股票歷史資料中獲取相關資料。

方法2:https://www.google.com.hk/finance/getprices?q=[股票程式碼]&x=[市場]&i=[間隔]&p=[週期]

例如,https://www.google.com.hk/finance/getprices?q=002673&x=SHE&i=1800&p=30d,意思就是獲取上證002673的股票,週期為30天,間隔1800。

搜狐

優點:JSON資料結果容易處理;獲取速度快。

缺點:每次只能獲取100個節點的資料;API經常變動。

方法1:http://q.stock.sohu.com/hisHq?code=[股票市場和程式碼]8&start=[開始日期]&end=[結束日期]&stat=1&order=D&period=d&callback=historySearchHandler&rt=jsonp

返回結果:JSON;時間段內的100個數據節點。

例如,http://q.stock.sohu.com/hisHq?code=cn_300228&start=20130930&end=20131231&stat=1&order=D&period=d&callback=historySearchHandler&rt=jsonp,返回30022股票20130930到20131231時間段內的日線資料。

證券之星

缺點:只能獲取80條資料。

優點:國內速度快;JSON返回容易解析。

方法1:HTTP://CQ.SSAJAX.CN/INTERACT/GETTRADEDATA.ASHX?PIC=QLPIC_[股票程式碼]_[市場]_[週期]

其中股票程式碼如000001;市場1表示滬,2表示深;週期6表示日,7表示周,8表示月。如:http://cq.ssajax.cn/interact/getTradedata.ashx?pic=qlpic_000001_1_6,獲取上證指數的日線行情資料。

返回結果:JSON資料。

方法2:HTTP://CQ.SSAJAX.CN/INTERACT/GETTRADEDATA.ASHX?PIC=QMPIC_600308_1_6_N80

網易財經

優點:速度快;JSON容易處理。

缺點:不能獲取分鐘線資料。

方法1:http://img1.money.126.net/data/[滬深拼音]/time/today/[股票程式碼].json

返回結果:當日分時圖資料;JSON資料;分時圖獲取資料依次是count節點數量、symbol股票程式碼、name股票名稱、data資料,其中資料依次是小時分鐘時間、價格、均價、成交量。

注意,滬深拼音為簡寫hs,以此可以推斷出其他市場也可以獲取,具體請自行判斷研究。

例如,http://img1.money.126.net/data/hs/time/today/1399001.json,返回深證成指當日分時圖資料。

方法2:http://img1.money.126.net/data/hs/time/4days/[股票程式碼].json

返回結果:獲取4天分時資料;和上述分時圖相似,但資料是連續4天的資料,不包括當天的資料。

方法3:http://img1.money.126.net/data/[滬深拼音]/[是否復權]/day/history/[年份]/[股票程式碼].json

返回結果:獲取日線資料。

其中,是否復權,不復權為kline,復權為klinederc。

例如,http://img1.money.126.net/data/hs/kline/day/history/2015/1399001.json,獲取深證成指2015年所有日線資料。

方法4:http://img1.money.126.net/data/[滬深拼音]/[是否復權]/[週期]/times/[股票程式碼].json

返回結果:獲取日線所有時間節點和收盤價。

其中,[是否復權],不復權為kline,復權為klinederc。

其中,[週期],day為日資料,week週數據,month月資料。

例如,http://img1.money.126.net/data/hs/kline/day/times/1399001.json,獲取深證成指所有時間節點資料。

方法5:http://quotes.money.163.com/cjmx/[今年年份]/[日期]/[股票程式碼].xls

返回結果:獲取歷史成交明細;XLS檔案。

注意,只能獲取5日內的資料,再之前的資料不會存在。

注意,該方法為網易公開獲取資料方法,推薦使用。

例如,http://quotes.money.163.com/cjmx/2015/20150611/0601857.xls,獲取0601857股票的2015年6月11日曆史成交明細XLS檔案。

方法6:http://quotes.money.163.com/service/chddata.html?code=[股票程式碼]&start=[開始日期]&end=[結束日期]&fields=[自定義列]

返回結果:歷史股價及相關情況;CSV檔案。

注意,該方法為網易公開方法,推薦使用。

其中,自定義列可定義TCLOSE收盤價 ;HIGH最高價;LOW最低價;TOPEN開盤價;LCLOSE前收盤價;CHG漲跌額;PCHG漲跌幅;TURNOVER換手率;VOTURNOVER成交量;VATURNOVER成交金額;TCAP總市值;MCAP流通市值這些值。

例如,http://quotes.money.163.com/service/chddata.html?code=0601857&start=20071105&end=20150618&fields=TCLOSE;HIGH;LOW;TOPEN;LCLOSE;CHG;PCHG;TURNOVER;VOTURNOVER;VATURNOVER;TCAP;MCAP,獲取0601857從2007-11-05到2015-06-18區間的資料。

參考文獻

http://www.jarloo.com/yahoo_finance/

http://blog.sina.com.cn/s/blog_54fae2350101c7ye.html

http://blog.sina.com.cn/s/blog_7ed3ed3d0102v5y7.html

http://blog.sina.com.cn/s/articlelist_2127818045_10_1.html

http://www.webxml.com.cn/WebServices/ChinaStockWebService.asmx

http://blog.sina.com.cn/s/blog_7ed3ed3d010146ti.html

http://www.cnblogs.com/me115/archive/2011/05/09/2040826.html