分享

前嗅教你大数据:采集东方财富网数据

 前嗅大数据 2022-01-26
l 采集场景
【场景描述】采集东方财富网行情中心沪深京A股数据

【使用工具】前嗅ForeSpider数据采集系统,免费下载:

ForeSpider免费版本下载地址

l采集网站

【入口网址】

http://quote.eastmoney.com/center/gridlist.html#hs_a_board

【采集内容】

采集行情中心沪深京A股中的所有数据。

【采集效果】如下图所示:

l采集思路

l配置步骤

1. 新建采集任务

选择【采集配置】,点击任务列表右上方【+】号可新建采集任务,将采集入口地址填写在【采集地址】框中,【任务名称】自定义即可,点击下一步。

2.观察翻页请求链接

①在浏览器中打开该页面,点击不同的翻页,观察左上角页面链接,发现没有变化。说明翻页中的数据在请求链接中。

②点击F12,如下图所示操作,先清空所有请求,点击任意一个翻页,右侧出现对应请求链接。打开请求的Preview,看到有表格中的数据。说明该请求为该翻页对应的请求链接。

右击该请求,可复制链接。

③将复制的链接粘贴到文档中,并用同样的方法,再获取另外两个翻页链接,观察翻页请求链接规律如下所示:

3.拼取翻页请求链接

①选中链接抽取,打开脚本窗口。

②写一个for循环,拼取翻页请求链接。

脚本文本如下所示:

url u;//定义一个链接取值

for(int i=1;i <=50;i++) //设定翻页总数50

{

u.title = URL.title+"@_@"+i.ToStr();//返回链接标题为当前链接+@_@+i

u.urlname = "http://42.push2.eastmoney.com/api/qt/clist/get?cb=jQuery1124005285923334703457_1642750942461&pn="+i+"&pz=20&po=1&np=1&ut=bd1d9ddb04089700cf9c27f6f7426281&fltt=2&invt=2&fid=f3&fs=m:0+t:6,m:0+t:80,m:1+t:2,m:1+t:23,m:0+t:81+s:2048&fields=f1,f2,f3,f4,f5,f6,f7,f8,f9,f10,f12,f13,f14,f15,f16,f17,f18,f20,f21,f23,f24,f25,f22,f11,f62,f128,f136,f115,f152&_="+time(time.GetTime()).ToStr().Left(" ")+"%2017:27:240000";//根据请求链接规律,拼取链接

u.entryid = CHANN.id;//返回链接id

u.tmplid = 2;//关联模板02

RESULT.AddLink(u);//结束返回链接

}

③采集预览,查看链接是否正确,复制任意一条链接,并在浏览器中打开该链接。

如下图所示,源码中包含该翻页的数据内容,则表示请求链接配置正确,可继续下一步操作。

4.抽取数据

①新建模板02,在其下新建一个数据抽取,如下图所示:

②新建数据表,具体如下图所示:

④关联数据表

⑤打开脚本窗口,新建数据抽取脚本。

⑥打开浏览器,观察源码,发现页面表格中的数据,在页面源码的json串中,在data中的diff数组中,每个数值,对应一行数据。每行数据分别在f1——f152对应的数值中。

根据数据所在位置规律,编写脚本如下所示:

脚本文本:

var str=DOM.GetSource().ToStr();//获取请求链接中所有的源码

var str_sec=str.Middle('"data":','})');//获取data后的数组内容

jScript js;//定义一个js

var obj = js.RunJson(str_sec);//运行数组

var data=obj.diff;//定义datadiff数组

for(var i=0;i<20;i++){//20个数值,所以写一个for循环,来获取这些数值的内容

record re;//定义返回值,固定搭配

re.id=URL.title.Right("@_@")+i;//id为当前链接标题中@_@后数值+i

re.f1=data[i].f1;//返回f1data数组中的第i个数值中的f1

re.f2=data[i].f2;//返回f1data数组中的第i个数值中的f2

re.f3=data[i].f3;//返回f1data数组中的第i个数值中的f3

re.f4=data[i].f4;

re.f5=data[i].f5;

re.f6=data[i].f6;

re.f7=data[i].f7;

re.f8=data[i].f8;

re.f9=data[i].f9;

re.f10=data[i].f10;

re.f11=data[i].f11;

re.f12=data[i].f12;

re.f13=data[i].f13;

re.f14=data[i].f14;

re.f15=data[i].f15;

re.f16=data[i].f16;

re.f17=data[i].f17;

re.f18=data[i].f18;

re.f20=data[i].f20;

re.f21=data[i].f21;

re.f22=data[i].f22;

re.f23=data[i].f23;

re.f24=data[i].f24;

re.f25=data[i].f25;

re.f62=data[i].f62;

re.f115=data[i].f115;

re.f128=data[i].f128;

re.f140=data[i].f140;

re.f141=data[i].f141;

re.f136=data[i].f136;

re.f152=data[i].f152;

RESULT.AddRec(re,this.schemaid);//结束返回一个数据,固定搭配

}

⑥采集预览

发现数据都采集出来了,说明配置成功。

l采集步骤

模板配置完成,采集预览没有问题后,可以进行数据采集。

1.建立数据表单

选择【数据建表】,点击【表单列表】中该模板的表单,在【关联数据表】中选择【创建】,表名称自定义,这里命名为【dong】(注意命名不能用数字和特殊符号),点击【确定】。创建完成,勾选数据表,并点击右上角保存按钮。

2.开始采集

选择【数据采集】,勾选任务名称,点击【开始采集】,则正式开始采集。

3.导出数据

采集结束后,可以在【数据浏览】中,选择数据表查看采集数据,并可以导出数据。

4.导出的文件打开如下图所示:

*本教程仅供教学使用,严禁用于商业用途!

l 前嗅简介

前嗅大数据,国内领先的研发型大数据专家,多年来致力于为大数据技术的研究与开发,自主研发了一整套从数据采集、分析、处理、管理到应用、营销的大数据产品。前嗅致力于打造国内第一家深度大数据平台!

    本站是提供个人知识管理的网络存储空间,所有内容均由用户发布,不代表本站观点。请注意甄别内容中的联系方式、诱导购买等信息,谨防诈骗。如发现有害或侵权内容,请点击一键举报。
    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约

    类似文章 更多