多级网页采集规则定义
视采采集器支持无限深度的页面采集。可以通过网页中的链接一层一层的采集下去。
流程和一般的采集器大致一样。首先我们在视采采集器中打开列表页面,定义内容页面的网址规则。如下图:
鼠标点击列表中包含网址的一项,一般是点击标题,在属性列表中查看地址形式。
如果在属性列表里看不到网址这一项,则在页面左面HTML标签结构视图里,在它的父标签里,找到A标签,点击该标签,并且在属性列表里出现网址为止。如下图:
然后点击列表中其它包含网址的一项,在属性列表中查看它们的差别。知道他们的差别后,点击页面的右上角的"单元"按钮。进入单元设定,向下滚动到网址属性的地方。如下图:
在网址一行里输入单元名,如"网址"。
在表达式输入框里,右键弹出菜单点击粘贴(值),将值复制到表达式输入框里。如图:
鼠标选择网址变化的部分。如图:
右键弹出菜单点击通配符替换掉变化部分。
如http://shbbs.soufun.com/joke~-1~3695/$n_$n.htm。系统提供以下几种统配符:
1、$n:匹配数字
1、$c:匹配字母,不包括数字
1、$s:匹配任意字符串
点保存。
回到网页列表设计器视图,那个黄色的区域叫做样本区域。点击"预览",检查匹配情况。如下图:
蓝色部分表示能够匹配的内容,如果匹配不正确,首先重新点击刚才的区域,进入单元设定视图,详细定义单元的表达式,保存, 回到网页视图,点击预览,如果匹配还是不正确,需要根据不同情况来调整单元设定。
首先找到被定义的区域,如果忘记了,鼠标点击页面的任意一块,取消预览,黄色的区域就是被定义的区域,再点击预览按钮,显示蓝色区域。 寻找错误匹配的蓝色区域,在错误匹配的蓝色区域里,点击离被定义的区域最近的一个,系统将自动在页面左面HTML标签结构视图里展示刚才被点击的标签。 在HTML标签结构视图里,滚动滚动条查看错误匹配的标签(红色标示)与被定义的标签(黄色标示)之间的位置关系,如图:
1、在同一个父标签内
a)需要进一步分析错误匹配的标签和被定义的标签他们属性之间的差别,然后修改单元的表达式。保存后预览
b)如果它们的属性完全一样或者无法区分,将错误匹配的标签也定义成单元,保留单元名为空,此操作是占位操作,目的是防止数据抽取错位。保存后预览。
2、不在同一个父标签内
点击被定义标签的父标签,定义该父标签的单元表达式,保留单元名为空,保存,然后点击预览。这时候网页视图有可能都是蓝色,无法了解匹配情况。 我们点击希望匹配的文字或区域,然后再次点预览,在HTML标签结构视图里查看标签的匹配情况。 如果还是不正确,继续定义父标签的父标签的单元表达式,直到匹配正确为止。这里定义父标签的目的是限定它的匹配范围。 如果匹配正确,回到设计器视图里,鼠标右键点击"网址"单元,弹出菜单。
在弹出菜单里点击"网页设计器"。系统自定会进入该网址的内容页面,然后和在列表叶面定义网址过程一样,定义内容页面需要采集的数据。如下图:
点击需要采集的一段文字,出现红色区域,如图:
红色区域有可能没有包含文字的全部部分,在页面左面HTML标签结构视图里找到你刚才点的标签,通过点击它的父标签来扩大它的匹配范围。如下图:
然后定义该标签的单元名以及表达式。该单元定义好后,回到内容页面再次选择其它文字,如标题等,直到需要的字段全部定义好为止。最后预览结果和调整结果,此步骤最好在所有单元定义好后进行,否则预览的结果有可能不对。匹配结果的调整方法和上面列表定义时的方法一样。
好了,到这里,一个从列表到内容的采集规则就全部定义好了。当然这还没有定义发布规则,这不是我们这一章所要说的事情了。
依次类推,我们可以定义出无限深度的采集规则。是不是很神奇啊。呵呵!

