一、数据整理设置页简介
1、说明
[数据整理设置页]用于建立并设置数据整理组,使用数据整理组,可以替换、过滤每一个数据项,达到将数据项再加工的目的;
一个数据整理组是一条或多条数据整理规则的有序集合,我们可以建立特定作用的数据整理组或通用性的数据整理组以满足不同需求;
在ET 2.x版中,原ET 1.x版本中采集规则的内容整理功能和过滤规则的替换、过滤功能被整合到数据整理组中,通过建立不同的数据整理组可实现对每一个数据项进行独立的整理替换;同时,数据整理组也支持被多个数据项重用,见图示1:
(图示1)
数据整理组必须被调用后才生效,见 数据项设置页-数据项属性-关联整理组 ;
当增加或编辑某整理组后,请使用保存按钮保存该整理组的设置;
过多的整理组会显著降低工作效率;
二、整理组操作
通过数据整理组列表旁的按钮,我们可以对数据整理组执行常规操作,见图示2:
(图示2)
1、增加
点击本按钮用于新增一个整理组;
2、复制
先选中一个待复制的整理组,再点击本按钮可以新增一个内容复制于该整理组的新整理组;
复制功能用于快速建立整理规则类似的整理组;
3、导入
点击本按钮将弹出导入窗口,使用导入窗口的文件菜单打开一个整理组规则文件或者直接在导入窗口的编辑栏内粘贴整理组规则后,点击导入按钮可以在整理组列表中创建该整理组,见图示3:
(图示3)
导入功能被用于快速地分享他人提供的整理组规则;
4、导出
选中一个整理组后点击本按钮将弹出导出窗口,使用导出窗口的文件菜单可以将该整理组保存为一个整理组规则文件,或直接复制导出窗口的编辑栏内显示的整理组规则到别处,见图示4:
(图示4)
导出功能可以使用户快速地与他人分享自己建立的整理组规则;
5、删除
点击本按钮将删除选中的数据整理组;
三、整理组设置
前文已经提到,一个数据整理组由一条或多条数据整理规则有序集合而成,因此在整理组属性区,我们除了为整理组设置标题名称,还要按照顺序为其设置整理规则,见图示5:
(图示5)
数据整理组中的数据整理规则按从上到下的顺序依次执行,每一条规则处理的对象内容都是上一条规则处理后的结果, 例如:在使用了规则“<div<%var%></div>”过滤内容后,再使用规则“<div id=xxx <%var%>></div>”进行过滤,那么后一条规则不起预期作用,因为前一条规则已经包含了后一条规则所能匹配的内容;
点击 图标,可以对当前选中的数据整理组进行测试,执行测试前,请先保存对整理组的设置;
1、编辑标题
编辑[当前组标题]可以修改整理组名称;
2、使用预设整理规则
ET提供了一些预设整理规则以方便用户快速建立数据整理组,见图示6:
(图示6)
注:预设整理组仅供参考选用,并非一定要使用,也不是一定适合用户的要求,请根据具体需求选用。
3、添加整理规则
点击加号按钮可以在当前整理组中顺序增加一条空白整理规则;
4、编辑整理规则
在整理组规则列表中点选待编辑格,格子右侧将出现省略号按钮,点击该按钮将弹出对应编辑窗,详见本文第四部分;
5、删除整理规则
点击减号按钮可以删除当前选中的整理规则;
6、调整规则顺序
点击上下箭头按钮可以调整选中规则的位置,见图示7:
(图示7)
7、保存规则
增加或编辑整理组属性设置后,必须使用保存按钮保存该整理组的设置;
重复的数据整理规则在保存整理组时会自动删除;
四、编辑数据整理规则
一条数据整理规则由[规则]和[替换值]两部分组成,[规则]用于匹配数据项中需要替换的部分,[替换值]用于替换数据项中[规则]匹配的值,当[替换值]为空值时,则该数据整理规则起过滤作用;
点击规则格子右侧的省略号按钮,将弹出对应编辑窗;
1、整理规则
位于整理组属性区规则列表左边的列为数据整理规则中的[规则]部分,[规则]编辑窗见图示8:
(图示8)
2、规则标记
在规则窗口中,目前版本提供了多个标记按钮用于建立匹配规则;
1、参数
标记代码为<%itemdataX%>,用于从规则中传递数据到替换值,[参数标记]一共有9个,分别为<%itemdata1%>、<%itemdata2%>、<%itemdata3%>、<%itemdata4%>、<%itemdata5%>、<%itemdata6%>、<%itemdata7%>、
<%itemdata8%>、<%itemdata9%>;
[参数标记]表示连续的、零到任意长度的字符串,该字符串可以在[替换值]中,被同名参数标记调用,在规则中,每一个[参数标记]只能使用一次,不可和[空白标记]、[换行标记]以外的标记连接;
从2.2版开始,[参数标记]取代[原值标记]<%itemdata%>,并兼容[原值标记],<%itemdata%>等于<%itemdata1%>;
([原值]标记用于表示本条整理规则应用前该数据项的全部内容,[原值标记]在规则中只能独立使用,使用[原值]标记时规则中不可有其他任何内容;)
2、变量
标记代码为<%var%>,用于表示数据项中连续的、零到任意数量的内容不确定字符串,[变量标记]在规则中可以多次使用,不可和[空白标记]、[换行标记]以外的标记连接;
[变量标记]使用次数越多,会导致采集工作效率越低;
3、空白
标记代码为<%blank%>,用于表示数据项中1个以上的连续空白字符串,包括全角半角空格和制表符,[空白标记]在规则中可以多次使用,可和其他标记连接;
在使用[空白标记]过滤内容中的大量空白字符,我们通常使用连续2个[空白标记],如“<%blank%><%blank%>”,这样可以避免过滤掉只有1个空格的正常代码;
4、换行
标记代码为<%crlf%>,用于表示数据项中1个以上的连续换行字符串,包括回车符、换行符、分页符和垂直制表符,[换行标记]在规则中可以多次使用,可和其他标记连接;
5、分隔
标记代码为#-0-#,这是ET在数据项匹配了多条内容,或采集了分页时,用于分隔各条内容的 [内容分隔] 标记,一个常见的用法是将它替换为发布网站所使用的分页标记以达到手动分页的效果,请参考 采集配置-数据项-数据项属性;
6、随机
标记代码为<%r=取值范围%>,用于从指定范围获得随机值,[随机标记]可以在规则中多次使用,可以与其他标记相连接。
取值范围中有多个值时,以英文逗号分隔,多关键词格式适合少量关键词使用。
数字范围取值格式示例:<%r=1-99%>
字符范围取值格式示例:<%r=a-z%>、<%r=A-Z%>
关键词取值格式示例:<%r=abc,9527,中国%>
混合取值格式示例:<%r=1-99,a-z,A-Z,中国%>
7、列表数据
标记代码为<[数据项名称]>,用于引用列表中获取的数据项,[列表数据]可以在规则中多次使用,可以与其他标记相连接。
列表网址:代码为<[列表网址]>,引用采集文章网址时使用的列表网页网址;
文章标题:代码为<[标题]>,引用采集列表时使用列表分析获取的文章标题,如果标题数据项未设置规则,那么本文章标题将应用标题数据项的属性设置与数据整理设置;
文章网址:代码为<[文章网址]>,引用采集列表时使用文章网址合成的文章网址;
缩 略 图:代码为<[缩略图]>,引用采集列表时使用列表分析获取的缩略图信息;
附加信息:三个附加信息标记,代码分别为<[附加信息1]>、<[附加信息2]>、<[附加信息3]>,引用采集列表时使用列表分析获取的对应附加信息数据,此标记为2.5版新增;
注:在使用测试工具进行测试时,以上标记因为没有数据,显示为空值。
8、时间
标记代码为<[time=格式]>,用于以指定格式插入当前时间,[时间]标记可以在规则中多次使用,可以与其他标记相连接,此标记为2.5版新增。
通过时间标记输入窗,将时间格式字符与其他文字混合编辑,以用户需要的方式显示系统当前时间,如下图:
时间格式字符语法:
Y、YYYY:4位中文年份,如 一九九八、二零一三 。
YY:2位中文年份,如 九八、一三 。
y、yyyy:4位数字年份,如 1998、2013 。
yy:2位数字年份,如 98、13 。
M:中文月份,如 一、十一 。
m:数字月份,如 1、11 。
mm:2位数字月份,不足2位则补0,如 01、09 。
D:中文日期,如 一、十一、三十一 。
d:数字日期,如 1、31 。
dd:2位数字日期,不足2位则补0,如 01、09 。
H:中文24小时制小时数,如 零、十一、二十三 。
h:数字24小时制小时数,如 0、5、23 。
hh:2位24小时制数字小时,不足2位则补0,如 00、05、23 。
I:中文分钟,如 零、十一、五十九 。
i:数字分钟,如 0、9、59 。
ii:2位数字分钟,不足2位则补0,如 01、09、59 。
S:中文秒钟,如 零、十一、五十九 。
s:数字秒钟,如 0、9、59 。
ss:2位数字秒钟,不足2位则补0,如 01、09、59 。
W:中文星期几,如 星期一、星期日 。
w:英文星期几,如 Monday、Friday、Sunday 。
u:本地系统时间的unix时间戳。
9、随机定位
随机定位标记通常用于向原文随机位置插入随机关键词。
标记代码为<%p=数量范围%>,用于在原文中随机插入不可见锚点,[随机定位]标记在规则中只能使用一次,可以与其他标记相连接,此标记为2.5版新增。
随机定位的定位锚点不会被插入到HTML标签左右尖括号<>之间,也不会被插入到链接文字中。
定位范围可以是固定值,如<%p=3%>,也可以是随机值,如<%p=1-5%>。
当随机定位标记在整理规则中独立使用(即规则不含其他字符)时,替换值将被插入原文随机位置指定次数,规则如下图:
当随机定位标记在整理规则中非独立使用时,原文中匹配该规则的字符串将有指定数量被随机替换为新值,规则如下图:
注:上图中三条规则的作用完全相同,随机定位标记在规则中任意位置效果均相同。
10、非等式
标记代码为<%eq!=取值范围%>,用于判断原文是否不等于取值范围中任何值,[非等]标记在规则中只能独立使用(规则不能包含其他字符),此标记为2.5版新增。
当原文不等于取值范围中任何值时,原文将被替换为新值。
取值范围中有多个值时,以英文逗号分隔。
数字范围取值格式示例:<%r=1-99%>
字符范围取值格式示例:<%r=a-z%>、<%r=A-Z%>
关键词取值格式示例:<%r=abc,9527,中国%>
混合取值格式示例:<%r=1-99,a-z,A-Z,中国%>
11、空值
标记代码为<%null%>,用于判断原文是否为空,若为空则替换为新值,[空值]标记在规则中只能独立使用(规则不能包含其他字符),此标记为2.6.1版新增。
3、替换值
位于整理规则列表右边的列为数据整理规则中的[替换值]部分,点选[替换值]格子后,点击小按钮可以进入[替换值]编辑窗口,[替换值]编辑窗见图示9:
(图示9)
4、替换值规则标记
在替换值窗口中,目前版本提供了[参数标记]用于设置替换内容;
1、参数
标记代码为<%itemdataX%>,用于调用从[规则]中传递来的同名参数标记的值,[参数标记]一共有9个,分别为<%itemdata1%>、<%itemdata2%>、<%itemdata3%>、<%itemdata4%>、<%itemdata5%>、<%itemdata6%>、<%itemdata7%>、
<%itemdata8%>、<%itemdata9%>,和规则中的同名参数一一对应;
每个[参数标记]在[替换值]中可以多次使用,可以连接使用;
[参数标记]使用方法见本节第6部分参考范例二;
从2.2版开始,[参数标记]取代[原值标记]<%itemdata%>,并兼容[原值标记],<%itemdata%>等于<%itemdata1%>;
2、随机
标记代码为<%r=取值范围%>,用于从指定范围获得随机值,[随机标记]可以在规则中多次使用,可以与其他标记相连接。
取值范围中有多个值时,以英文逗号分隔。
数字范围取值格式示例:<%r=1-99%>
字符范围取值格式示例:<%r=a-z%>、<%r=A-Z%>
关键词取值格式示例:<%r=abc,9527,中国%>
混合取值格式示例:<%r=1-99,a-z,A-Z,中国%>
3、列表数据
标记代码为<[数据项名称]>,用于引用列表中获取的数据项,[列表数据]可以在规则中多次使用,可以与其他标记相连接。
列表网址:代码为<[列表网址]>,引用采集文章网址时使用的列表网页网址;
文章标题:代码为<[标题]>,引用采集列表时使用列表分析获取的文章标题;
文章网址:代码为<[文章网址]>,引用采集列表时使用文章网址合成的文章网址;
缩 略 图:代码为<[缩略图]>,引用采集列表时使用列表分析获取的缩略图信息;
附加信息:三个附加信息标记,代码分别为<[附加信息1]>、<[附加信息2]>、<[附加信息3]>,引用采集列表时使用列表分析获取的对应附加信息数据,此标记为2.5版新增;
4、时间
标记代码为<[time=格式]>,用于以指定格式插入当前时间,[时间]标记可以在规则中多次使用,可以与其他标记相连接,此标记为2.5版新增。
通过时间标记输入窗,将时间格式字符与其他文字混合编辑,以用户需要的方式显示系统当前时间,如下图:
时间格式字符语法:
Y、YYYY:4位中文年份,如 一九九八、二零一三 。
YY:2位中文年份,如 九八、一三 。
y、yyyy:4位数字年份,如 1998、2013 。
yy:2位数字年份,如 98、13 。
M:中文月份,如 一、十一 。
m:数字月份,如 1、11 。
mm:2位数字月份,不足2位则补0,如 01、09 。
D:中文日期,如 一、十一、三十一 。
d:数字日期,如 1、31 。
dd:2位数字日期,不足2位则补0,如 01、09 。
H:中文24小时制小时数,如 零、十一、二十三 。
h:数字24小时制小时数,如 0、5、23 。
hh:2位24小时制数字小时,不足2位则补0,如 00、05、23 。
I:中文分钟,如 零、十一、五十九 。
i:数字分钟,如 0、9、59 。
ii:2位数字分钟,不足2位则补0,如 01、09、59 。
S:中文秒钟,如 零、十一、五十九 。
s:数字秒钟,如 0、9、59 。
ss:2位数字秒钟,不足2位则补0,如 01、09、59 。
W:中文星期几,如 星期一、星期日 。
w:英文星期几,如 Monday、Friday、Sunday 。
u:本地系统时间的unix时间戳。
5、参考范例一
以下面的discuz论坛的干扰码为例,我们举几个整理规则的应用例子。
1、过滤所有干扰码:
规 则:<font style="font-size:0px;color:#FFF"><%var%></font>
替换值:
2、将干扰码内容替换为指定内容:
规 则:<font style="font-size:0px;color:#FFF"><%var%></font>
替换值:<font style="font-size:0px;color:#FFF">网站名称</font>
3、过滤干扰码时,不同网站干扰码代码有区别,有些网页里甚至同时有几种干扰码,请使用测试工具仔细试验;
6、参考范例二
某标题数据项的值类似“欢迎下载ET2用户帮助手册”,以此为例;
1、将该数据项的值替换为“新闻:欢迎下载ET2用户帮助手册”的格式:
规 则:<%itemdata1%>
替换值:新闻:<%itemdata1%>
2、将该数据项的值替换为“这是ET2的说明书,欢迎你阅读帮助手册”的格式:
规 则:欢迎下载<%itemdata1%>用户<%itemdata2%>
替换值:这是<%itemdata1%>的说明书,欢迎你阅读<%itemdata2%>
3、将图片代码居中显示:
规 则:<img<%itemdata1%>>
替换值:<center><img<%itemdata1%>></center>