有些表格的格式是有几行用了合并单元格,有些又没有合并,对于这种类型的表格如下图所示:

文章讲述的入口地址为:http://gaokao.chsi.com.cn/zsjh/

 

图片1

打开网页之后如上图显示:

需要点开每所大学后面的招生专业,本文以北京大学为例,点开北京大学后面的招生专业之后,显示如下图:

图片2

可以看到图中两行格式是不一样的,那么对于这种格式的表格我们解决方法是:

首先我们打开八爪鱼,新建一个任务,添加一个打开网页的步骤到流程设计器中,填写页面URL,点击保存,打开对应的网页。

 图片3

然后选中图中北京大学后面的相关专业点击42,在弹出的对话框选择点击这个元素,如下图:

图片4

设置好之后,则会自动跳转我们需要采集表格的页面

图片5

我们针对图中的表格每一整行创建循环列表,对于图中的整行,鼠标点击的时候只会识别整行中的单独一列,我们选选中其中一列,再在弹出的页面选择TR,如下图:

图片6

选中之后,会看到如下图所示虚线框已经选择成整行了,然后选择创建一个元素列表处理一组元素:

图片7

上述操作之后,选择添加元素到列表。这时我们会看到下图,需要选择继续添加列表。

图片8

 

按照同样的方法添加第二行,这时候系统会把表格中的循环项自动识别出来:

图片9

注意:可以看到图中合并单元格的部分系统默认只添加了第一行,图中标记的那一行是没有添加的,这时候我们选择继续添加列表,把图中未添加的那一行按照同样的方式继续添加。

图片10

选择添加到列表之后,选择创建列表完成并循环列表

图片11

然后选择提取数据,并做好字段名称的命名:

图片12

注意这时候问题来了:

图片13

上图中合并单元格的部分我们点击提取数据时会发现字段对应不正确,如下图:

图片14

这种情况下我们看到没合并的单元格我们发现每行是6个,合并的单元格第二行只有5个单元格,通过这个条件做分支判断,手动拖一个循环条件放到先前创建循环列表的下方

图片15

 

第一个分支我们判断有6个单元格的正确提取数据,并把提取数据拖动到第一个条件分支里面:

图片16

拖动之后我们选择图中左边位置利用xpath做一个6个单元格的分支判断,然后点击保存

图片17

 

针对流程右边的条件分支,我们也做一个提取数据的流程。这个提取数据可以直接从左边复制到右边的边框图片18

设置好之后,可以看到右边的数据字段与数据名称是不对应的,这时候有需要用到xpath定位。注意左边单元格里面采集的是每行的第一行字段内容,而右边采集的是合并单元格里面第一行以下的内容

图片19

 

对流程中右边的提取数据进行xpath定位,点击图中的自定义数据字段,在弹出来的页面选择自定义定位元素方式,定位每个字段的相对xpath路径

图片20

 

下图是定位‘专业名称’的相对xpath

图片21

下图是定位‘计划类型’的相对xpath

图片22

依次定位好每个字段的xpath之后,我们选择下一步保存。然后进行流程的测试

图片23

测试成功,数据被顺利的采集出来了