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

数据抽取脚本与数据过滤并列的脚本,它的作用是对抽取的数据进行过滤。数据处理脚本是数据抽取中的脚本。点击“数据抽取”节点,在“数据脚本”的下拉菜单必须选择“数据抽取脚本”。配置了数据处理脚本,数据的抽取流程将被改变:
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");

相关推荐