文章目录

  • 一、 实验平台——UiBot
  • 二、 项目功能与实现
    • 1、项目介绍
    • 2、 项目流程
      • (1) 全局变量设置
      • (2) 页面登录和跳转
      • (3) Excel记录项目名称和个数
      • (4) 搜索并爬取第i个实训项目
      • (5) 新建工作表重命名写入,删除无效列
      • (6) Excel高亮和统计
      • (7) 循环执行(4)-(6)
      • (8) 关闭页面和表格
  • 三、 问题解决
    • 1、 全局变量
    • 2、 插件配置
    • 3、 数据抓取后获得纯字符串
    • 4、 数据抓取不完整
    • 5、 连接线形状

一、 实验平台——UiBot

官网下载链接:https://www.uibot.com.cn/

UiBot是一家机器人流程自动化服务平台,其产品包含创造者、劳动者、指挥官三大模块,用户可通过平台一键录制流程并自动生成机器人,支持可视化编程与专业模式、浏览器、桌面、SAP等多种控件抓取以及C、Lua、Python、.Net 扩展插件及第三方SDK接入,还可对业务与权限进行实时监控调整。

UiBot产品主要包含创造者、劳动者、指挥官、魔法师四大模块,为机器人的生产、执行、分配、智能化提供相应的工具和平台。

  • Creator

创造者即机器人开发工具,用于搭建流程自动化机器人。

  • Worker

劳动者即机器人运行工具,用于运行搭建好的机器人。

  • Commander

指挥官即控制中心,用于部署与管理多个机器人。

  • Mage

魔法师即AI能力平台,为机器人提供执行流程自动化所需的各种AI能力。

二、 项目功能与实现

1、项目介绍

机器人的主要目标是在头歌页面上自动获取学生实训提交情况。

机器人将打开头歌页面,点击我的头像查看课程,进入到《XX课程》。点击进入已截止的实训项目,我的账号可查看到各位同学的实训通关情况。

为了实现对项目列表进行遍历,机器人在已截止页面抓取所有项目名称,由于页面过长无法智能识别并抓取,且提取的数据无法直接转换为字符串。因此,将所有实训项目写入Excel后再读出,在网页搜索栏中依次进行搜索,以遍历所有实训。

在实训详情中将爬取所有同学的提交信息,输出到Excel表格中。一般而言,学生在实训项目截至后应当按时通关,对于异常提交情况,如迟交通关未通关未开启,在Excel中用不同颜色高亮展示,处理过程保留各种异常情况的学生数。

最后,将统计结果写入Excel单元格,抓住未做作业的那一批同学。

​ 最后形成的Excel效果如图所示。

2、 项目流程

(1) 全局变量设置

为了实现在流程图中的数据共享,本项目设置了如下的流程图变量,即全局变量。在运行完整项目时将创建并共享。关于全局变量的设置,可以参考报告中的问题解决-全局变量板块。

  • hWeb:标识机器人所打开的页面。在启动浏览器时产生,通过hWeb实现打开、关闭、切换浏览器及其标签页。

  • TrainName:实训名称,string型。记录所有已截止的实训项目的名称,采用数据抓取的方式获得。

  • TrainNum:实训个数,int型。即TrainName的长度,表示共有多少个已截止的实训需要进行数据采集。

  • ExcelProject:Excel表,用于记录所有实训名。由于抓取到的实训名称无法直接转为字符串,通过Excel表转换,并实现在搜索框中依次搜索内容。

  • Name:代表当前遍历到的实训名称,string型。从ExcelProject中依次获取,以作为搜索框中的输入。

  • CurProject:标记当前遍历到第几个实训,int型。在每次进入流程循环时+1,作为从ExcelProject获取Name的下标。

  • TrainInfo:学生们作业提交的表格信息。从每个实训的作业列表中由数据抓取得到。

  • ExcelProject:Excel表,用于记录所有实训详情。抓取到的原始TrainInfo将存储到该Excel表中,并对表进行新建表、重命名表名、写入区域、删除列、高亮单元格等操作,对每个实训项目新建一个对应名称的工作表,处理数据并高亮异常提交情况。

(2) 页面登录和跳转

在该流程中,机器人主要实现以下几个步骤

  • 进入头歌点击我的头像

机器人将自动打开浏览器,访问网址https://www.educoder.net/,由于在本机电脑上已经自动登录,所以无需再进行登录操作。点击我的头像可直接进入到我的教学课堂内容。

  • 选择课程

选择《大学计算机基础》

  • 查看已截止项目

点击课程后会默认进入实训作业的页面,查看已截止的项目。

(3) Excel记录项目名称和个数

由于之后希望遍历每一个实训项目并爬取数据,于是在该流程块中,希望获取全部实训名称,以便之后依次进入对应的实训页面。但是,直接从网页爬取的数据不是纯字符串,解决这个问题的方法见问题解决的数据抓取后获得纯字符串。

​ 将所有实训名自动保存到实训详情.xlsx

(4) 搜索并爬取第i个实训项目

CurProject标识了当前遍历到第几个实训项目,初始值为0。这部分流程涉及到遍历,在流程块外部实现,流程块内实现该循环的具体内容,即进入第i个实训项目,爬取学生项目完成情况。涉及到以下几个步骤:

  • 获取当前实训项目名

CurProject代表当前实训项目的序号,进入该板块后+1,即从第1个项目开始遍历。

读取实训详情.xlsxSheet1工作表中的A&CurProject单元格的数据,即实训项目名称,如第一个项目为冯诺伊xxxx

  • 搜索项目并进入作业列表

在页面的搜索框中输入项目名称回车,鼠标点击板块,进入该项目的作业列表

  • 抓取页面数据

抓取页面数据,由于页面为表格形式,因此可以快速抓取。设置翻页页数,由于每个实训项目均为同样的学生参与,因此翻页数固定为4。在这里可能会出现数据抓取不完整的问题,解决方案可见问题解决的数据抓取不完整。

同时,为了打开页面时未处于第1页,可以设置页面滚动条,滑到页面选择,选择第1页后再爬取数据。这个操作的增加即可以防止页面错误,也可以防止数据抓取不完整的问题。

(5) 新建工作表重命名写入,删除无效列

​ 对于不同的实训任务,将在Excel中用不同的工作表进行存储,表名即为实训名,因此需要进行以下几个步骤。

  • 创建新的工作表并重命名

  • 写入数据

  • 删除无用列

此时会发现有许多列的数据并没有起到作用,因此设置删去这些列。

(6) Excel高亮和统计

​ 由于学生的提交情况分为按时通关迟交通关未通关未开启四种情形,其中后三种被看作是异常情况,需要进行记录和统计,分别用Late、Unsub和Unstart来记录。

当数据完成写入后,遍历每一行数据,查看每位同学对应的作业状态。根据作业状态(IsSubmit)进行条件判断,若为异常状态,则用对应单元格颜色和文字颜色高亮展示,并将对应变量的数值+1。

最后,在该工作表的J1:K4的位置分别列出各项异常情况的统计值。

由于要进入下一次循环,因此我们需要关闭当前标签页(即关闭第i个项目的提交详情界面)。

(7) 循环执行(4)-(6)

循环条件:CurProject>=TrainNum。其中CurProject代表当前遍历到的项目序号,TrainNum代表实训项目总数。

即对于每一个项目,都会进行搜索操作,搜索得到结果后,自动点击进入该实训项目,爬取学生的提交情况。在Excel中创建新的工作表,命名为该实训项目名称,并写入数据、删除无用数据,对异常情形进行高亮和统计操作,可视化展示。

(8) 关闭页面和表格

在实训项目全部遍历完毕后,关闭标签页和表格,流程结束。

三、 问题解决

1、 全局变量

问题

​ 在流程图中,各个板块之间实现自己的主要功能,但是存在一些数据交互和共用的功能,如果在每个流程块输出部分变量,在下一个流程块接接收的话,变量传递会变得非常繁琐。观看旧版教学视频只发现了这种传递方式。【参考https://forum.uibot.com.cn/thread-4215.htm】

解决方案:

​ 但是新版的开发者指南里提供了全局变量、循环逻辑和流程块的一些相关操作。【参考初级开发者指南-流程和任务管理】,于是可以设置全局变量,板块内的操作会为变量附上新的值,方便流程间的数据传递。

2、 插件配置

问题

​ 在项目流程的页面登录和跳转的步骤中,会发现设置用Chrome浏览器打开指定链接https://www.educoder.net/时,机器人能实现打开Chrome,但无法正确跳转页面。

解决方案:

​ 需要安装Chrome插件,在首页-工具-Chrome扩展中安装,并在浏览器设置-扩展程序中启用扩展程序。其他浏览器也可以对应安装扩展程序。

参考链接:https://forum.uibot.com.cn/thread-2098.htm

3、 数据抓取后获得纯字符串

问题

​ 在项目流程的Excel记录项目名称和个数的步骤中,希望获取各实训项目的名称字符串,以实现遍历点击。但是会发现数据抓取的结果为列表,而每一项的输出也是一个列表。

​ 爬取得到的数据如下图所示,并不是纯字符串,不符合预期。

解决方案:

​ 我想到的方案是先将数据写入Excel。再对Excel内容进行读取。此时读取得到的字符串为纯字符串,而不是一个列表形式。

4、 数据抓取不完整

问题

​ 在项目流程的爬取第i个实训项目的步骤中抓取数据时,有时会发现数据抓取不完全。存入Excel表后如下图所示。

解决方案:

出现这种问题很大可能是页面延迟问题,数据未来得及加载就已经进入到下一个步骤,解决的关键在于设置延迟。可以通过以下方案解决

  • 为前一个动作增加延迟

将前一个动作的执行后延时时间增加,可设置为800-1000。

  • 设置延时

插入延时命令。设置动作运行完的等待时间。

5、 连接线形状

问题

​ 在流程图绘制过程中,发现连接线常常很混乱,无法按照想要的方式进行连接。

解决方案:

​ 按住Ctrl+鼠标左键可以在连接线上加点,拖动点使得连接线合理。

(16)UiBot:智能化软件机器人(以头歌抓取课程数据为例)相关推荐

  1. 爬虫软件尝试-后羿采集器:批量免费抓取网页数据

    免费软件尝试-后裔采集器 软件特点:免费,全平台(Windows. Mac. Linux),操作简单无需技术. 使用流程: 下载软件打开->输入抓取数据的网址->职能采集->等待自动 ...

  2. 软件直接爬取数据——以MOOC课程数据为例+现已公开的数据库(网盘分享)

    软件直接爬取数据--以MOOC课程数据为例+现已公开的数据库(网盘分享) 使用软件 八爪鱼 说明 其他公开的数据库 因为毕业设计的需要,导师那块还没有下来数据,所以以防万一,不得不自己搜集爬取数据.但 ...

  3. 人形机器人视觉处理——定位抓取

    上期简单介绍了机器人如何进行视频回传和回传视频的一些简单参数,这期我们通过一个简单的案例来讲解下,机器人通过视觉能够实现的功能.机器人定位抓取. 具体的原理是:根据目标物中心点的位置,让机器人通过左右 ...

  4. 抓包软件抓取手机数据(app,浏览器等)

    抓包软件抓取手机app数据 抓包软件,Charles配置 proxy-windows proxy(打钩) proxy-proxy settings 端口号8888 箭头处打钩 proxy-ssl pr ...

  5. Python头歌答案入门基础代码60例

    头歌60道题目,代码,输入输出和解析      

  6. fiddler不能抓取浏览器数据_抓包软件 Fiddler 了解一下?

    学会如何抓包,是爬虫的必备技能,甚至可以说,不会抓包就等同于不会爬虫. 那我们怎样抓包呢?如果直接抓取浏览器上的内容,可以直接使用开发者工具进行抓包,但有个局限,只能抓浏览器的,功能也没有多少.还可以 ...

  7. 智能假手与机器人融合可以灵活抓取物品

    洛桑联邦理工学院(EPFL)的科学家们开发了新的方法来改善对机器手的控制,该方法将单个手指控制和自动化结合起来,以提高抓取和操作能力.研究者将神经工程学和机器人学之间的跨学科结合在3名截肢患者和7名健 ...

  8. RPA自动化办公05——Uibot自动抓取网页数据

    参考:数据获取和处理_UiBot开发者指南 Python爬虫要对网页文件结构有一定了解,而且写程序一点一点把数据弄出来也很麻烦. 但是Uibot爬取数据是很简单的. 全部流程不过几步,本次爬取某东手机 ...

  9. 头歌 · NoSQL系列课程 · Neo4J / MongoDB 实验

    科研部建设中,覆盖歌云端实验平台对于Neoj4.MongoDB 的实验项目 目录 目录 ​编辑 Neo4j  实验一.二 MonGoDB实验三.四 实验五六.redis Neo4j  实验一.二 // ...

最新文章

  1. android mp4宽高,Android:MediaPlayer视频宽高比问题
  2. socket编程:多路复用I/O服务端客户端之poll
  3. mini2440系统引导(四)存储控制器
  4. 韩顺平老师 Mysql优化 笔记
  5. 软件工程系列教材:软件架构设计实践教程
  6. [转]NS2仿真过程中解决动画仿真节点未定义问题
  7. RealFormer:把残差转移到Attention矩阵上面去
  8. 我的QT4.5编译流水帐(转帖)
  9. 只运行一个实例的写法
  10. BeautifulSoup解析库select方法实例——获取企业信息
  11. 做一个消息自动回复,但是回复内容可以在网页上面输入,用input接收,错了,别人有新增选项,本身就是在页面进行新增,页面维护...
  12. Easyui清除tree的选中
  13. Centos7之LVM(逻辑卷管理器)
  14. 【读论文】一种半监督文本分类方法:MixText
  15. gnuplot详细操作
  16. js常用的正则匹配(一般不用修改)
  17. ad打开ddb文件_如何用AD10打开DDB文件
  18. 第五章 语法分析——自上而下分析
  19. 1790D Matryoshkas
  20. Ubuntu下mosquitto 的使用

热门文章

  1. Android实现电话来电自动接听功能
  2. 仿京东购物界面放大镜效果
  3. var和function定义方法的区别
  4. 大数据技术在金融行业反洗钱业务的应用分析
  5. PHP中sqlite3的使用
  6. 空间载波(载频)关键技术及其实现
  7. D-link des-3828三层交换机入门设置
  8. 不定积分常用公式(详解版)
  9. Base64变种实现,如何实现Base64自定义编码
  10. 计算机网络(10): 网络层——网络地址转换NAT技术