采集合并单元格内容的方法
2015-06-25 10:28:11 阅读量: 0
有些表格的格式是有几行用了合并单元格,有些又没有合并,对于这种类型的表格如下图所示:
文章讲述的入口地址为:http://gaokao.chsi.com.cn/zsjh/
打开网页之后如上图显示:
需要点开每所大学后面的招生专业,本文以北京大学为例,点开北京大学后面的招生专业之后,显示如下图:
可以看到图中两行格式是不一样的,那么对于这种格式的表格我们解决方法是:
首先我们打开八爪鱼,新建一个任务,添加一个打开网页的步骤到流程设计器中,填写页面URL,点击保存,打开对应的网页。
然后选中图中北京大学后面的相关专业点击42,在弹出的对话框选择点击这个元素,如下图:
设置好之后,则会自动跳转我们需要采集表格的页面
我们针对图中的表格每一整行创建循环列表,对于图中的整行,鼠标点击的时候只会识别整行中的单独一列,我们选选中其中一列,再在弹出的页面选择TR,如下图:
选中之后,会看到如下图所示虚线框已经选择成整行了,然后选择创建一个元素列表处理一组元素:
上述操作之后,选择添加元素到列表。这时我们会看到下图,需要选择继续添加列表。
按照同样的方法添加第二行,这时候系统会把表格中的循环项自动识别出来:
注意:可以看到图中合并单元格的部分系统默认只添加了第一行,图中标记的那一行是没有添加的,这时候我们选择继续添加列表,把图中未添加的那一行按照同样的方式继续添加。
选择添加到列表之后,选择创建列表完成并循环列表
然后选择提取数据,并做好字段名称的命名:
注意这时候问题来了:
上图中合并单元格的部分我们点击提取数据时会发现字段对应不正确,如下图:
这种情况下我们看到没合并的单元格我们发现每行是6个,合并的单元格第二行只有5个单元格,通过这个条件做分支判断,手动拖一个循环条件放到先前创建循环列表的下方
第一个分支我们判断有6个单元格的正确提取数据,并把提取数据拖动到第一个条件分支里面:
拖动之后我们选择图中左边位置利用xpath做一个6个单元格的分支判断,然后点击保存
针对流程右边的条件分支,我们也做一个提取数据的流程。这个提取数据可以直接从左边复制到右边的边框
设置好之后,可以看到右边的数据字段与数据名称是不对应的,这时候有需要用到xpath定位。注意左边单元格里面采集的是每行的第一行字段内容,而右边采集的是合并单元格里面第一行以下的内容
对流程中右边的提取数据进行xpath定位,点击图中的自定义数据字段,在弹出来的页面选择自定义定位元素方式,定位每个字段的相对xpath路径
下图是定位‘专业名称’的相对xpath
下图是定位‘计划类型’的相对xpath
依次定位好每个字段的xpath之后,我们选择下一步保存。然后进行流程的测试
测试成功,数据被顺利的采集出来了