如今,量化分析在股市领域风靡一时,其核心要素在于数据,获取股票数据,是踏上量化分析之路的第一步。你可以选择亲手编写爬虫来抓取,但更便捷的方式,莫过于利用专业的股票数据API接口。自编爬虫虽零成本,却伴随着时间与精力的巨大消耗,且常因目标页面变动而失效。大家可以依据自己的实际情况来决定数据获取方式。
接下来,我将分享200多个实测可用且免费的专业股票数据接口,并通过Python、JavaScript(Node.js)、Java、C#、Ruby等五种主流语言,逐一演示如何高效获取各类股票数据,希望能够对大家有所帮助。
先把数据接口的地址给大家,大家可以直接点击地址或复制到地址栏打开,马上就可以验证接口的有效性
沪深A股公司简介数据API接口:http://api.mairuiapi.com/hscp/gsjj/000001/LICENCE-66D8-9F96-0C7F0FBCD073
接口URL中,000001是股票代码,LICENCE-66D8-9F96-0C7F0FBCD073是请求证书,这个是官方提供的测试证书只能测试000001的数据,随后大家自己可以去领取一个免费的请求证书就可以获取其他股票的数据了。
1、python
importrequests url="http://api.mairuiapi.com/hscp/gsjj/000001/LICENCE-66D8-9F96-0C7F0FBCD073"response=requests.get(url)data=response.json()print(data)2、JavaScript (Node.js)
constaxios=require('axios');consturl="http://api.mairuiapi.com/hscp/gsjj/000001/LICENCE-43D5-9F96-0C7F0FBCD073";axios.get(url).then(response=>{console.log(response.data);}).catch(error=>{console.log(error);});3、Java
importjava.net.URI;importjava.net.http.HttpClient;importjava.net.http.HttpRequest;importjava.net.http.HttpResponse;importjava.io.IOException;publicclassMain{publicstaticvoidmain(String[]args){HttpClientclient=HttpClient.newHttpClient();HttpRequestrequest=HttpRequest.newBuilder().uri(URI.create("http://api.mairuiapi.com/hscp/gsjj/000001/LICENCE-43D5-9F96-0C7F0FBCD073")).build();try{HttpResponse<String>response=client.send(request,HttpResponse.BodyHandlers.ofString());System.out.println(response.body());}catch(IOException|InterruptedExceptione){e.printStackTrace();}}}4、C#
usingSystem;usingSystem.Net.Http;usingSystem.Threading.Tasks;classProgram{staticasyncTaskMain(){using(HttpClientclient=newHttpClient()){stringurl="http://api.mairuiapi.com/hscp/gsjj/000001/LICENCE-43D5-9F96-0C7F0FBCD073";HttpResponseMessageresponse=awaitclient.GetAsync(url);stringresponseBody=awaitresponse.Content.ReadAsStringAsync();Console.WriteLine(responseBody);}}}5、Ruby
require'net/http'require'json'url=URI("http://api.mairuiapi.com/hscp/gsjj/000001/LICENCE-43D5-9F96-0C7F0FBCD073")http=Net::HTTP.new(url.host,url.port)request=Net::HTTP::Get.new(url)response=http.request(request)data=JSON.parse(response.read_body)puts data返回数据示例:
{"name":"平安银行股份有限公司","ename":"Ping An Bank Co.,Ltd.","market":"深圳证券交易所","ldate":"1991-04-03","sprice":"40.00","principal":"","rdate":"1987-12-22","rprice":"1940590万元(CNY)","instype":"股份制商业银行","organ":"民营企业","secre":"周强","phone":"0755-82080387","sphone":"0755-82080387","fax":"0755-82080386","sfax":"0755-82080386","email":"PAB_db@pingan.com.cn","semail":"PAB_db@pingan.com.cn","site":"http://www.bank.pingan.com","post":"518001,518033","infosite":"","oname":"S深发展A 深发展A 平安银行","addr":"广东省深圳市罗湖区深南东路5047号","oaddr":"广东省深圳市罗湖区深南东路5047号,中国广东省深圳市福田区益田路5023号平安金融中心B座","desc":"本行系在对深圳经济特区原六家信用社改组的同时经中国人民银行深圳经济特区分行[87]深人融管字第93号文批准向社会公众发行股票,并经中国人民银行银复[1987]365号文批准设立的股份有限公司。本行在深圳市工商行政管理局注册登记,取得营业执照,营业执照注册号为:440301103098545。本行于1987年5月9日经中国人民银行深圳经济特区分行批准,首次向境内社会公众发行人民币普通股39.7万股。于1988年4月在深圳经济特区证券公司挂牌柜台交易。并于1991年4月3日在深圳证券交易所上市。 自2012年7月27日起,公司名称由\"深圳发展银行股份有限公司\"变更为\"平安银行股份有限公司\",英文名称由\"Shenzhen Development Bank Co.,Ltd.\"变更为\"Ping An Bank Co.,Ltd.\"。","bscope":"人民币、外币存贷款;国际、国内结算;票据贴现;外汇买卖;提供担保及信用证服务;提供保管箱服务等。","idea":"本月解禁,证金汇金,区块链,融资融券,券商重仓,保险重仓,深圳本地,长期破净,基金重仓,低市盈率,外资背景,破净股,大盘,MSCI中国,社保重仓","printype":"代销","referrer":"--","putype":"其他","pe":"--","firgu":"--","lastgu":"--","realgu":"67.50","planm":"--","realm":"--","pubfee":"--","collect":"--","signfee":"--","pdate":"1989-03-10"}返回的数据字段说明:
name代表:公司名称,ename代表:公司英文名称,market代表:上市市场,idea代表:概念及板块,多个概念由英文逗号分隔,ldate代表:上市日期,格式yyyy-MM-dd,sprice代表:发行价格(元),principal代表:主承销商,rdate代表:成立日期,rprice代表:注册资本,instype代表:机构类型,organ代表:组织形式,secre代表:董事会秘书,phone代表:公司电话,sphone代表:董秘电话,fax代表:公司传真,sfax代表:董秘传真,email代表:公司电子邮箱,semail代表:董秘电子邮箱,site代表:公司网站,post代表:邮政编码,infosite代表:信息披露网址,oname代表:证券简称更名历史,addr代表:注册地址,oaddr代表:办公地址,desc代表:公司简介,bscope代表:经营范围,printype代表:承销方式,referrer代表:上市推荐人,putype代表:发行方式,pe代表:发行市盈率(按发行后总股本),firgu代表:首发前总股本(万股),lastgu代表:首发后总股本(万股),realgu代表:实际发行量(万股),planm代表:预计募集资金(万元),realm代表:实际募集资金合计(万元),pubfee代表:发行费用总额(万元),collect代表:募集资金净额(万元),signfee代表:承销费用(万元),pdate代表:招股公告日