前嗅ForeSpider脚本教程:数据抽取脚本

比特灵犀
• 阅读 258

数据抽取脚本与数据过滤并列的脚本,它的作用是对抽取的数据进行过滤。数据处理脚本是数据抽取中的脚本。点击“数据抽取”节点,在“数据脚本”的下拉菜单必须选择“数据抽取脚本”。配置了数据处理脚本,数据的抽取流程将被改变:
1.如果脚本未正确返回dom区域节点,则该数据抽取的规则将完全由该脚本控制。
2.如果脚本返回了一个正确的dom区域节点,则此数据抽取以返回的区域节点为基准,区域外的数据则优先当做垃圾信息处理。
注意:一旦有了数据抽取脚本则数据过滤脚本将失效,即“数据脚本”的下拉菜单必须选择“数据抽取脚本”。

一.可用全局对象(只读)

EXTRACT: 当前采集引擎[ 对象类型: extractor ]
DATADB: 当前连接的数据库[ 对象类型: dataBase ]
RESULT: 当前结果集对象[ 对象类型: result ]
URL: 当前采集的链接对象[ 对象类型: url ]
URLTEXT : 描述当前链接采集的所有状态及属性的对象[ 对象类型: urltext ]
DOC: 当前采集的文档对象[ 对象类型: grabDoc ]
DOM: 当前采集文档的dom对象[ 对象类型: dom ]
ITEM: 模板区域的dom树节点(如果模板未选择区域则为dom树的根节点)[ 对象类型: domItem ]
TMPL: 当前文档模板对象[ 对象类型: tmplTmpl ]
REC: 当前记录集对象[ 对象类型: record ]

二.this对象

当前数据抽取[tmplData]对象

三.脚本返回值

如果欲采集某个特征区域内的数据,则必须返回该区域的dom节点对象( domItem对象); 否则该数据抽取则完全由脚本控制。

示例

在数据模板表单各字段的区域特征定位无法取值时,就要写数据抽取脚本。
1.数据抽取脚本基本的样式

record infoTable;   //一个新的取值记录
infoTable.(字段名)infoTable.hkkey = MD5(URL.urlname);  
infoTable.title = title;、
infoTable.goods_id = itemId;
infoTable.platform = "";
RESULT.AddRec(infoTable, TMPL.fstdoc.schemaid); //输出

2.采集第一个Form表单中的数据

return DOM.FindName("form"); 
点赞
收藏
评论区
推荐文章
Wesley13 Wesley13
3年前
java实现任务调度
最近的一个小项目是做一个简单的数据仓库,需要将其他数据库的数据抽取出来,并通过而出抽取成页面需要的数据,以空间换时间的方式,让后端报表查询更快。因为在抽取的过程中,有一定的先后顺序,需要做一个任务调度器,某一优先级的会先执行,然后会进入下一个优先级的队列任务中。先定义了一个Map的集合,key是优先级,value是任务的集合,某一个优先级内的任务是并发执
Stella981 Stella981
3年前
DataX的过滤器可行性实践
1\.需求说明​生产环境中有些数据需要在抽取的时候指定对某个字段进行过滤,判断等等。以将本地文件抽取到HDFS为例,当前我们需要导入的数据有2条,如下:!(https://imgblog.csdnimg.cn/2020101511253711.png?xossprocessimage/watermark,type_
Stella981 Stella981
3年前
ForeSpider教程之如何爬取位置不固定的图片
众所周知,对于新闻网站来说,图片位置是无法固定的,所以想要爬取到这些位置不固定的图片,需要一定的技术手段。以某网站为例,任务入口地址为:http://www.chengdu.cn/一、对首页进行链接抽取。 抽取文章标题,使用地址过滤“包含”.shtml。抽取到结果如下:二、新建模板2,抽取图片链接及内容数据:示例地址如下:ht
Wesley13 Wesley13
3年前
MySQL添加注释
在数据库设计中,我们是建议为数据库,数据表以及数据字段进行添加注释的,MySQL数据库中,字段或列的注释是用属性comment来添加。创建新表的脚本中,可在字段定义创建表脚本中添加comment属性来添加注释。示例代码如下:1createtabletest(2idintnotnulldefault
Stella981 Stella981
3年前
Python Selenium 之数据驱动测试
  数据驱动模式的测试好处相比普通模式的测试就显而易见了吧!使用数据驱动的模式,可以根据业务分解测试数据,只需定义变量,使用外部或者自定义的数据使其参数化,从而避免了使用之前测试脚本中固定的数据。可以将测试脚本与测试数据分离,使得测试脚本在不同数据集合下高度复用。不仅可以增加复杂条件场景的测试覆盖,还可以极大减少测试脚本的编写与维护工作。  下面
Wesley13 Wesley13
3年前
UniEAP V4 开发实践说明文档
一、开发环境搭建1\.前期准备Javajdk1.6,Oralce数据库,plsql客户端,tomcat6.0,开发样例数据库脚本,unieap脚本,unieap工程,unieapworkshop。2\.引入UniEAPv4工程到workshop中在菜单中选择“导入”,选择“现有项目到工作空
Easter79 Easter79
3年前
Tomcat脚本简要分析
Tomcat的脚本在bin目录下,有:catalina、startup、shutdown、setenv、digest、version等。其中catalina脚本用于启动和关闭tomcat服务器,是tomcat中最关键的脚本。startup脚本和shutdown脚本等都是使用了不同的参数调用了catalina脚本:startup脚
Stella981 Stella981
3年前
Shell 特殊变量
shell编程中有一些特殊的变量可以使用。这些变量在脚本中可以作为全局变量来使用。名称说明$0执行脚本的名称$19脚本执行时的参数1到参数9$?脚本的返回值,代表上一个命令是否执行成功,如果成功,则为0,否则不成功$!代表最后执行的后台命令的PID    $脚本执行时,输入的参数的个数$@输入的参数
知识图谱自动化构建的探索与挑战
知识图谱自动化构建的探索与挑战|论文分享达观数据知识图谱的自动化构建是知识图谱中具有极强挑战性且巨大应用价值的技术方向。就实体抽取技术,达观数据副总裁、上海市人工智能技术标准委员会委员王文广提到“狭义的实体抽取,即命名实体识别(NER)技术发展至今已较为成熟,能够很好地抽取出人名、地名、机构名等少数类型的实体。但在知识图谱实际应用中,则需要抽取出各式各样各不
python定时任务执行shell脚本切割Nginx日志-慎用
Python定时任务执行shell脚本切割Nginx日志(慎用)缘起我们有一个Nginx服务用来接收埋点上报数据,输出的日志文件比较大,Nginx没有自带日志分割组件,这样输出的日志文件就比较大,抽取日志就比较麻烦。网上切割日志的方式一般就两种:logra
taskbuilder taskbuilder
4个月前
TaskBuilder前端页面JS脚本编辑
在前端页面设计器内,点击底部的“JS脚本”选项卡,可以打开JS脚本编辑器,查看和设置当前页面的JavaScript脚本有关的内容,包括以下几个部分:3.3.5.1外部脚本引用如果在前端页面里需要用到外部js文件的功能,则可以点击JS脚本设计器左上角“外部脚
比特灵犀
比特灵犀
Lv1
十指紧紧的相扣,也总有一天会分开。
文章
10
粉丝
0
获赞
0