公告:
  • 欢迎访问火车采集器客户帮助中心

标签循环采集

【作者:神秘嘉宾】【字号: 】【打印】【收藏

我们要采集一个页面上面同样格式的多条数据的时候,就可以针对一条信息设置好规则,勾选下标签循环匹配,就可以把满足这个规则的所有数据采集到如下图:

clip_image004[1]

比如采集这个网站:http://www.smct.com.cn/wat/controllerServlet.do?queryid=0002001&method=doquery&querysid=g0002&showpage=1

clip_image006[1]

我们查看页面源代码,我把源代码复制到txt里面做了些简单的处理,让大家看的更明白如下图:

clip_image008[1]

上图看到船名都是“<tr><td >”开始“</td>”结束,我们建立一个规则分别是以“<tr><td >”开始和以“</td>”结束。

规则设置如下图:

clip_image010[1]

采集结果如下:

clip_image012[1]

左侧标签循环处理那里选了“添加为新记录”,右侧看到了船名都已经采集到了,并且每个船名都是一条独立的信息,

看到上图左侧有个选项“循环不足的记录以第一条记录补全”勾选上这个,如果在循环过程中有的信息没有采集到,就会用采集到的第一条数据填充。

假如左侧标签循环处理那里选了“用分隔符链接在上条的记录后” 然后在下面的“分隔符”哪一项设置分隔符,如下图:

clip_image014[1]

测试结果如下:

clip_image016[1]

上图可以看到每次循环采集到的结果都是用我们设置的分隔符连接起来做为一条信息,注意和上面选择“添加为新记录”,采集结果的不同。

我们通过页面源代码,知道这个是个表格,那么我们就多说些,表格如何采集。如果我们还要继续采集更多信息如下图的“英文船名”,“航次”等等。

clip_image018[1]

我们打开页面源代码看到这些信息的开始都是以“<td >”开始以“</td>”结束,我们设置规则的时候就会很困难,如下图

clip_image020[1]

那么看下我是如何采集到“英文船名”的规则如下:

clip_image022[1]

在看下我采集“航次”规则是如何设置的:

clip_image024[1]

设置完后测试采集如下图:

clip_image026[1]

成功采集了!

原理就是都是以“<td >”开始那么我们就通过这个字符出现的次数来界定,结束字符全部都是“</td>”。

上面设置的规则正好说明了这个一点,船名是在第一次出现<td >的后面,英文船名是在第二次出现“<td >”的后面,航次是在第三次出现“<td >”的后面。。。。。。。

后面以此类推,中间不需要的东西我们就用“(*)”代替,表示任意。可以自己尝试写写。这个是经常采集表格要用的。