网页包含iframe框架处理办法
有的网页包iframe框架,在八爪鱼中也需进行相应设置,本教程将详细讲解。
1、什么是iframe框架
通俗来说,iframe框架就是在同一个页面中有多个网页,也就是网页中嵌套了其他的网页。
iframe框架可能有一层,也可能有多层。
如何判断网页有几层iframe框架?
借助火狐浏览器的irebug和firepath插件,我们可以很容易地判断出网页有几层iframe框架。
如果没有安装,请查看 火狐firebug和firepath插件以及谷歌xpath helper安装方法 。
安装好后,点击【Top Window】位置,会显示出网页的层级。
如下图所示:第一个网页有一层iframe框架,第二个网页则有四层iframe框架。
2、网页具有一层iframe框架的采集方法
八爪鱼支持自动识别一层iframe框架,因此按照正常流程配置流程即可。
示例网址:http://www.weather.com.cn/alarm/alarm_list.shtml
示例网址具有一层iframe框架:【iframe】,即搜索结果列表是一个独立的网页,嵌套在整个大网页中。
这个iframe框架里的数据,正是我们需要采集的。
按照正常流程,配置列表数据采集的规则,配置好后点开【循环列表】设置页面,发现八爪鱼自动识别了iframe框架,无需手动修改什么。
3、网页具有2层以上Iframe框架的采集方法
网页包含2层或以上Iframe框架时,在八爪鱼里面直接获取数据采集,也可以在浏览器里先拿到去框架后的网址再到八爪鱼里采集,两种方案如下:
3.1利用浏览器获取去掉iframe框架后的链接
示例网址:http://ggzyjyzx.yangzhou.gov.cn/qtyy/ggzyjyzx/jyxx_listn.html?shownode=0
示例网址具有三层Iframe框架:【iframe】、【iframe】和【iframe#right_list】,我们要采集的是【iframe#right_list】框架中的列表数据。
如果直接将整个网址放进八爪鱼中配置规则,可能在进行【点击该元素】后,不会产生跳转(正常情况下会自动跳转),无法正常配置规则。
这时候,我们就需要将要采集的这层iframe框架的真实地址提取出来:
① 将鼠标移动到目标iframe框架的范围内
② 点击鼠标右键
③ 鼠标移动到【此框架】上
④ 点击【在新标签页中打开框架】,新开的标签页的网址就是此框架的真实地址。
示例中我们要采集的iframe框架的真实地址为:http://ggzyjyzx.yangzhou.gov.cn/qtyy/ggzyjyzx/right_list/right_list_jsgc.jsp?t=1606210782426
然后另外新建一个任务,将提取出来的iframe框架真实地址输入到打开网页里,再按正常流程配置规则即可。
3.2用rpa直接获取包含多层iframe框架的网页数据
在八爪鱼里直接对数据进行提取采集
示例网址:https://scm.chinaoct.com/octdzzc/spw/portal/detail.html?selectTab=jiaoyixinxi&primaryId=C0523739DCD04C009811C9603EFA806A¬icePath=变更公告&pageCode=noticeDetailFrame&pageName=变更公告
获取网页元素信息
捕获到网页元素信息后,查看元素编辑器可以看到,自动获取到了iframe框架的xpath
运行应用,即可正常提取到包含多层iframe框架的数据