数据抽取脚本与数据过滤并列的脚本,它的做用是对抽取的数据进行过滤。数据处理脚本是数据抽取中的脚本。点击“数据抽取”节点,在“数据脚本”的下拉菜单必须选择“数据抽取脚本”。配置了数据处理脚本,数据的抽取流程将被改变:数据库
1.若是脚本未正确返回dom区域节点,则该数据抽取的规则将彻底由该脚本控制。dom
2.若是脚本返回了一个正确的dom区域节点,则此数据抽取以返回的区域节点为基准,区域外的数据则优先当作垃圾信息处理。this
注意:一旦有了数据抽取脚本则数据过滤脚本将失效,即“数据脚本”的下拉菜单必须选择“数据抽取脚本”。url
一.可用全局对象(只读)orm
EXTRACT: 当前采集引擎[ 对象类型: extractor ]对象
DATADB: 当前链接的数据库[ 对象类型: dataBase ]文档
RESULT: 当前结果集对象[ 对象类型: result ]it
URL: 当前采集的连接对象[ 对象类型: url ]form
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");