matlab 爬虫抓取A股当日每笔成交数据

matlab 爬虫抓取A股当日每笔成交数据

话不多说直接上代码,注释我还是写的比较详细的。

抓取数据

爬虫我也是刚接触,这个例子是参考张总教程

function [dataTick,timeTick]=get_tradedetail(stockid,date)
% 获取单个股票单天成交明细数据
% stockid='sz000565';
% date='2017-06-15';

dataTick=[];
timeTick=[];
try
url=['http://market.finance.sina.com.cn/downxls.php?date=',date,'&symbol=',stockid];
str=urlread(url,'Charset','GBK');

data=textscan(str,'%s');
data=data{1,1};
% 这句用的好
dataA=reshape(data,6,size(data,1)/6)';
% 数据名称
name=dataA(1,:)';
% 删除 name 行
dataA(1,:)=[];
% 将数据反转,也就是从早到晚排列
dataA=flipud(dataA);
% 将时间数值化
timeTick=datenum(dataA(:,1));
% 剔除日期,获得当天的时间点
timeTick=timeTick-floor(timeTick);
% 1 买盘,-1买盘,0 中性盘
dataT=zeros(size(dataA,1),1);

ind=strcmp(dataA(:,6),'买盘');

dataT(ind,1)=1;

ind=strcmp(dataA(:,6),'卖盘');

dataT(ind,1)=-1;
% 将dataB 从元胞转换成double型
dataB=dataA(:,[2 4 5]);
dataB=char(dataB);
dataB=str2num(dataB);
dataB=reshape(dataB,size(dataA,1),3);

dataTick=[dataB,dataT];
catch
    disp('当天没有数据')
end
end

抓取数据然储存

function down_tradedetail(stockid,date,varargin)
% download tradedetail of stockid on date
% 指定存储路径或是默认路径
if isempty(varargin)
    filepath='C:\Users\aidensong\Desktop\sina_download\';
else
    filepath = varargin{1};
end
% 判断目录是否存在,若不存在则创建
if ~exist(filepath)
mkdir(filepath); %创建文件夹;
end
%下载网址
fullURL=['http://market.finance.sina.com.cn/downxls.php?date=',date,'&symbol=',stockid];
filename=[filepath,[stockid,'_',date],'.txt']; %保存的文件名
tic;
[~,status]=urlwrite(fullURL,filename);%下载命令
if status==1
    t=toc;
    list=dir(filename);
    xi=list.bytes;
    disp([list.name,'  下载成功  ','文件大小为:',num2str(xi/1024/1024),'M','  耗时',num2str(t/60),'分钟']);
else
    disp(['pottmp.',list.name,'.nc','下载失败']);
end
end

一句话总结。好好学习,天天向上。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

半美人

动力源于鼓励

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值