自动抓取股票日K线数据

首先我们需要一个在更新的所有股票代码的列表,凤凰网上有现成的:

http://app.finance.ifeng.com/hq/list.php?type=stock_a

这里面需要采取抓取页面的办法来实现。(程序代码就不附了)

然后我们需要根据股票代码,去取基本面的数据,主要是要知道股票的上市日期,因为历史数据需要从上市日期开始抓取。

基本信息的抓取,需要分析一下东方财富网的 Ajax 代码,可以知道抓取的 URL是:

http://emweb.securities.eastmoney.com/PC_HSF10/CompanySurvey/CompanySurveyAjax?code=xxxxxx

返回很漂亮的 JSON 格式,美中不足的是,字段名称都是中文拼音声母拼凑,比较难理解,例如 dm = 董秘。

有了这个上市日期后,再去搜狐抓取历史数据,

http://q.stock.sohu.com/hisHq?period=d&code=cn_’.$code.’&start=’.$begin_date.’&end=’.$end_date

不过,数据质量还是网易的 csv 格式比较高。

$url_kline = ‘http://quotes.money.163.com/service/chddata.html’;

$url = $url_kline.’?code=’.$code_n.$code.’&start=’.$begin_date.’&end=’.$end_date.’&fields=TCLOSE;HIGH;LOW;TO
PEN;LCLOSE;CHG;PCHG;TURNOVER;VOTURNOVER;VATURNOVER;TCAP;MCAP’;

但是网易抓取的时候貌似经常被屏蔽掉,这是我切换成搜狐的主要原因,而且 json 比起 csv 来更加轻量,解析起来也方便。

鄙视一下新浪财经,抓取数据是有严格的数据量限制的,尝试了一次以后,再也不去新浪抓了。

最想吐槽的其实是各家公司的数据没有统一的标准,譬如成交量,有的用手数,有的用股数,成交金额有的用元做单位,有的用万元做单位。

输出的字段名称也没有统一的英文标准,也是醉了。

证券公司,别看表面光鲜,背后的治理以及管理水平在我看来还需要再上层楼。

日 K 线历史数据, Beta 测试期间,每天下午 4:00 以后免费提供。

有需要者可在公司微信(微信号:yj777-cn)后台,直接发送消息留言。

作者: 甬洁网络

--移动互联网&物联网技术提供商