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

24次阅读

共计 951 个字符,预计需要花费 3 分钟才能阅读完成。

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

正文完
 0