RPA实验室 - 航班数据自动抓取
优采云 发布时间: 2022-06-21 01:13RPA实验室 - 航班数据自动抓取
有时候,我们必须闭上嘴,放下骄傲,承认是自己错了。这不是认输,而是成长。 -- 今日老鸭粉丝汤
今天有收到我们小伙伴在咱们的提问如何通过UiPath在有起点终点和日期的情况下获取所有相关航班信息的方法。虽然运用到的activity对于刚起步的萌新来说可能有些超纲,但实际实现起来并不算复杂。
作为一个非常不错的学习实验案例,今天的分享就由本人带着大家一起试着玩转一下这个流程。
先来看一下我的解决方案(当然实现的方法可以有千万种,绝对有同学可以做的比我更出色)。
我们将需要查询航班信息的记录按顺序填在一张表的Sheet1上,分别是出发城市、日期和到达城市。
运行我制作好的UiPath流程,UiPath会自动登录到某在线票务网站(可以按实际需要选择网站),依次输入刚才在Sheet1记录的数据,抓取查询得到的所有航班信息。
然后按照行数创建新的sheet,将相关的航班信息填入,得到的结果如下图。
下面我就来为大家介绍一下具体的实现过程,其中可能会用到一些诸如Excel的activity和Data Scraping等之前分享还没有涉及过的功能,不知道的同学们可以趁此机会先做了解。
1. 当然我们必须得在电脑上装上免费的Uipath Studio(),新建一个新的流程,并在一个指定路径下创建一个用来储存我们航班信息的表格。
2. 找到Read Range这个activity,注意是Workbook而不是Excel下的那个Read Range(区别会在之后的分享中具体解释)。
Read Range是用来读取一个表内指定范围的数据的。我们将路径填写到第一栏(记得加“”),填写Sheet的名称。因为这里我们需要读取所有填写的数据,所以范围栏我们就放“”表示读取整表。
再看Read Range的属性设置。AddHeaders要打勾表示同时读取表的列名,输出的话我们创建一个叫DT的数据表(名字可以自取)。
3. 拿到数据后我们就可以去票务网站抓需要的信息了。这里为大家介绍一个非常常用的activity Open Browser。
它的作用是打开浏览器直接进入到我们设置好的网站路径(默认的浏览器是IE)。
同时在这里新建一个整数型变量n,用于我们之后创建存储相关记录航班信息的Sheet名。
4. 读取Sheet1每一行的数据,我们用到的是For Each Row这个activity,逐行读取之前DT数据表(Sheet1数据)。
数据分别用Type into键入到网站对应的项目内,Click“搜索机票”。
5. 可能是在这个流程中操作最复杂的一步。我们要用到Data Scraping(通常用于抓取网页或应用上以类似数据表形式呈现的视图上的信息)。
从第一个元素开始选取,然后会提示选择第二个相近的元素。
这时候UiPath便会智能识别出整列的元素,接下去需要做的就是重复类似刚才的操作,并为每一列加上相应的列名。
将每一列都添加完成后,我们还可以按实际情况选择最大记录条数(默认是100),点击右下Finish完成航班信息表数据抓取。
6. 设置好Data Scraping后会在流程内自动创建一个单独的Sequence,我们需要把它挪到我们的For Each Row内,因为我们是按每条信息去分别获取航班数据的。
这里需要特别注意对于自动生成的Data Scraping内Attach Browser的Selector修改。
可以看到生成的Selector是根据我们做Data Scraping时页面的信息组成的,意味着一旦我们搜索的航班信息不同时该Selector即不可用。
解决方法很简单,参照之前分享的,去掉title(每次搜索都会变化),将htmlwindowname改为uid_*,即把uid后随即生成的数字改成通配符。
至此,该流程大部分开发我们已经攻克。
7. 最后,抓取的航班信息依次用Write Range写入按行号命名的Sheet中。再Click“首页”回到输入起点终点和日期的界面准备下一条信息抓取。
有需要源码的同学请帮忙转发本公众号任意文章到朋友圈截图并在公众号回复,小白会将相关文件一一分享给这些小伙伴,非常感谢大家的支持。
同学们有任何问题或建议都可以通过以下二维码或公众号菜单栏的“论坛”按钮去到我们最新上线的小白修炼营论坛告诉我。当然你也可以直接加入我们小白修炼营的,和小伙伴们随时随地一起聊RPA。
往期
精选
5 Dec 2018
●
●
●
●
●