數據抽取腳本與數據過濾並列的腳本,它的做用是對抽取的數據進行過濾。數據處理腳本是數據抽取中的腳本。點擊「數據抽取」節點,在「數據腳本」的下拉菜單必須選擇「數據抽取腳本」。配置了數據處理腳本,數據的抽取流程將被改變:數據庫
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");