◇ 采集说明
SXCMS支持采集的数据,不仅限于文章或图片等内容,可以是网站的任何数据。分两种采集方式,通用数据采集和内容采集。通用数据采集方式,适用于任何数据。内容方式,仅支持内容类型的采集,同时会建立搜索索引和更新相关页面。
采集过程:
从配置的入口页进入目标网站,通过地址读取规则逐层跟踪,一直到目标内容页,进行最后的数据分析获取。例如,通过首页进入一个网站,再从导航栏地址进入各列表页,然后从列表页获取最终内容页的地址,进行采集。例子说明的是个简单的3层结构,实际采集是不限层次的。
配置规则:
也可以理解为语法。支持正则表达和SXCMS规定的更简单的方法。SXCMS中用{}来表示要采集的数据块和名称。如<div id="content">{body}</div>表示要获取介于<div id="content">和</div>之间的内容,并把获取的内容命名为body。如果用正则表达式,可以是<div id="content">(?<${body}>.*?)</div>,两种写法都正确。通常,采集的数据都是有多个属性或字段的,在配置中每一行,表示一个数据项。所以,在设置中除非要另设置一个新项,否则不能有回车,这样会误认为是两个数据项。如
<div id="content">{body}</div>
<h1>{subject}</h1>
表示采集两个数据项,分别为标题和正文。如果放成一行,则会认为是一个项,忽略后面的subject.
SXCMS另有一个特殊符号“ -- ”(注意,两边各有一个空格),表示任意字符,等同正则.*?。如,<div id="content" style="width:200px;height:300px;font-size:12pt; color:red;">{body}</div>,可以表示为 <div id="content" -- >{body}</div>,更为简洁些。
采集选项:
用“名称=值”表示,填写在配置参数“默认"中的系统参数。主要包括:
charset:要采集页的编码,如果跟本地一样,可以忽略,例如,本地使用gb2312,而要采的网页使用utf-8,则必须配置chartset=utf-8.
nextpage,pagebreak,nexturl,表示采集分页数据。必须一起配置。nextpage指启动分页采集的数据项,如nextpage=body,则在采集body值时会继续查找“下一面”链接的页面的数据。pagebreak表示采集到分页数据后,在本地使用的页分隔附,可以为空。SXCMS文章分页的符号为:<!--##page##-->。nexturl表示分面地址的规则,用{href}取地址值。
pic:图片的裁剪范围。可以用一个数字表示4个边距相同,可以分别用4个数字表示4个边距,顺序为上,右,下,左,用“,”号隔开。如pic=0,0,20,0 表示将采到的图片裁掉下部20像素高。一般用来去除原有的水印标记。
order:采集顺序。默认从列表中倒采。如果设置 order=asc,表示正采。
lrange:从页面指定的范围中获取地址列表。lrange+序号,分别对应“页面URL规则”中的各项。如 lrange0表示第一项,lrange1表示第2项,类推。
参数配置:
在系统中新建一个规则时,各项参数的配置说明。
名称:为规则命名,便于管理。
类型:选自定义,指用通用数据采集方式,要填写数据类型的编码,是在entity.config配置项的Code值。除自定义外其他项都是系统支持的内容模块,需要配置要采入的目标栏目。
目录地址:采集的入口页,可以设置多个地址,一行表示一个地址。
页面URL规则:地址跟踪规则,用{href}或(?<${href}>.*?)表示要读取的链接字符窜。每行表示一个层次。例如:
空,直接在目录地址中配置的页面中采集内容数据。
配置一项,在目录页中按规则查找链接地址,并在地址页中采集内容数据。
配置N项,在目录页中按规则查找链接地址,并把地址页作为目录页用下一个规则查找链接地址,如此循环到最末。
内容获取规则:配置数据的各个属性或字段。每一项用一行表示。{}中分别对应数据属性或字段名称。如文章包含有subject(标题),body(正文),则分别配置包含{subject}{body}的表达式。
默认值:每项一行,设置采集选项参数和数据字段的默认值。如采集文章时设置source=本站,则采集的文章都设置source(来源)为“本站“。
过滤规则:主要用于过滤广告等,只能用正则表达
采集来源:SXCMS系统支持网页采集,如果使用从其他文件或数据库的采集,这里配置组件名称。
