l 采集网站
【场景描述】采集revisionvillage网页中所有真题图片的数据。
【源网站介绍】revisionvillage,国外知名IB真题网站,每道题都有视频讲解的IB数学刷题网站。
【使用工具】前嗅ForeSpider数据采集系统,免费下载:ForeSpider免费版本下载地址
【入口网址】
【采集内容】
采集页面中的真题图片数据。
【采集效果】如下图所示:
l 配置步骤
1. 新建采集任务
选择【采集配置】,点击任务列表右上方【+】号可新建采集任务,将采集入口地址填写在【采集地址】框中,【任务名称】自定义即可,点击下一步。
2.寻找图片链接
在浏览器中打开该页面,点击F12,选择指针后,点击页面中的图片位置,在源码中找到图片链接,如下图所示:
图片链接如下图所示:
将图片链接复制,在浏览器中打开,即为该图片页面:
3. 查找图片链接位置/规律
观察源码发现,每一个真题在源码中对应一个class,如下图所示:红框内表示真题1所对应的源码,绿框内为所有真题的源码,是从class为【et_builder_inner_content et_pb_gutters3】的子节点的下一个节点的下一个节点开始。
第一真题所对应源码打开以后,如下图所示,观察发现:图片链接的位置在该节点的子节点的下一个节点的子节点的子节点的子节点的子节点的href值。
4.数据抽取
①打开模板,新建一个数据抽取,如下图所示:
②新建数据表,具体如下图所示:
③关联数据表
④打开脚本窗口,新建数据抽取脚本。
⑤根据图片链接规律,编写脚本如下所示:
脚本文本:
var a = DOM.FindClass("et_builder_inner_content et_pb_gutters3","div");//定义a为class为【et_builder_inner_content et_pb_gutters3】的节点 var b = a.c;//定义b为a节点的子节点的下一个节点的下一个节点的下一个节点,即真题一所对应的源码中的位置节点 for(i=1;i<=32;i++){//写一个for循环,来获取每一个图片 record re;//返回数据固定搭配 re.id = i;//范围主键为i var c=b.c;//定义c为b节点的子节点的下一个节点的子节点的子节点的子节点的href属性值,即获取到图片链接值 var doc = EXTRACT.OpenDoc(CHANN,c, "");//打开图片链接 var p=doc.GetDom().GetSource(c);//定义p为图片链接打开页面中的源码,即图片 re.pic=p;//返回p Re.ex=“.png”;//返回后缀为.png EXTRACT.CloseDoc(doc);//固定搭配,关闭图片链接 RESULT.AddRec(re,);//固定搭配,返回一个数据 b=b.next;//b为b的下一个节点,即下一个图片所对应源码的位置节点 }
⑥采集预览
发现图片都采集出来了,说明配置成功。
l 采集步骤
模板配置完成,采集预览没有问题后,可以进行数据采集。
1.建立数据表单
选择【数据建表】,点击【表单列表】中该模板的表单,在【关联数据表】中选择【创建】,表名称自定义,这里命名为【ID】(注意命名不能用数字和特殊符号),点击【确定】。创建完成,勾选数据表,并点击右上角保存按钮。
2.开始采集
选择【数据采集】,勾选任务名称,点击【开始采集】,则正式开始采集。
3.导出数据
采集结束后,可以在【数据浏览】中,选择数据表查看采集数据,并可以导出数据。
4.导出的文件打开如下图所示
本教程仅供教学使用,严禁用于商业用途!
l 前嗅简介
前嗅大数据,国内领先的研发型大数据专家,多年来致力于为大数据技术的研究与开发,自主研发了一整套从数据采集、分析、处理、管理到应用、营销的大数据产品。前嗅致力于打造国内第一家深度大数据平台!