目录
    采集东方财富网
    视频教程:模板下载:
    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;//定义data为diff数组
    for(var i=0;i<20;i++){//有20个数值,所以写一个for循环,来获取这些数值的内容
    record re;//定义返回值,固定搭配
    re.id=URL.title.Right("@_@")+i;//id为当前链接标题中@_@后数值+i
    re.f1=data[i].f1;//返回f1为data数组中的第i个数值中的f1值
    re.f2=data[i].f2;//返回f1为data数组中的第i个数值中的f2值
    re.f3=data[i].f3;//返回f1为data数组中的第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.导出的文件打开如下图所示:



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