【自动化流程设计】(2) - 使用RPA,不写代码爬取文章信息

在之前的一篇文章中,我们使用RPA自动登录了艺赛旗社区,接下来要介绍的就是使用RPA,不写代码爬取文章信息。

一、提出问题

在登录的状态下,获取当前账号所发文章的标题、评论数以及浏览数,在不写代码的情况下实现。

二、问题分析

程序猿的解决思路是编写爬虫程序,依次爬取:

  1. 查找规律设置当前账号帖子页的URL
  2. 在帖子页依次获取每篇文章的URL
  3. 爬取每篇文章的标题、评论数以及浏览数

如若使用RPA,不写代码也是能够实现的,我们先分析普通用户在界面的操作流程:

  1. 点击账号头像进入个人主页的帖子页
  2. 点击每篇文章链接,进入该文章页面获取文章的标题、评论数以及浏览数
  3. 点击页码进入下一个帖子页,再获取每篇文章的信息

根据这个流程,我们便可以通过RPA进行模拟,在不编写代码的情况下爬取文章信息。

三、解决问题

Step 1、进入帖子页

鼠标点击当前账号头像进入个人主页的帖子页
在这里插入图片描述

Step 2、获取文章的信息

因为每个帖子页最多的文章数量为30篇,所以直接设置循环30次,从第一篇文章开始,每次循环点击一篇文章的链接,进入该文章的页面获取文章的标题、评论数以及浏览数,保存至一个变量中,然后再后退到帖子页,进入下一次循环。
如果循环次数之内未点击到文章链接,说明以获取所有文章,这个时候会抛出异常,而这里使用了【Try异常】组件,故会直接跳转至“异常”执行【Break中断】,跳出循环。
在这里插入图片描述

Step 3、进入下一个帖子页

因为随着帖子的持续发布,帖子页的页数是会持续增加的,为改变流程的通用性,就不能设置具体的循环次数,故此处使用【While循环】设置不限次数的循环(当然也可以设置一个较大的循环次数,毕竟实际上帖子页的页数还是有限的)。
进入【While循环】是处理当前页面,首先进入【For循环】处理文章信息,处理之后进入下一个帖子页,不过在进入下一个帖子页时,需要先判断是否存在下一个帖子页,这里是使用【获取文本】组件获取下一个帖子页的页码,获取成功,自然便表示有该帖子页,直接点击该帖子页链接;如若没有,说明已经获取完了所有文章的信息,这个时候中断循环,再返回获取的数据便可。
在这里插入图片描述
运行结果:
在这里插入图片描述

四、要点

在【While循环】和【For循环】中,都有一点很重要,那就是不同次情况下运行相同的组件却要执行不同的行为。
就以【For循环】中,每次循环需要点击不同的文章链接来讲,首先我们要清楚【鼠标点击】组件是怎么自动找到对应的元素控件的。
选择该【鼠标点击】组件,查看该组件的属性描述窗口“查找路径”参数,该参数便是元素在网页中的位置。
在这里插入图片描述

而相同类型元素的路径在网页中的位置是有规律可寻的,通过我们的RPA,不熟悉HTML的一般用户也是可以轻松找到规律所在的。
以下是通过拾取文章链接获取到的“查找路径”,从第一到第三以及第三十篇,我们可以发现就一个数字的变化,而每次循环变量 i 是从0到29依次变化,所以我们便可以代入i完成每次的循环处理:
在这里插入图片描述
这样便解决了位置查找的问题,同理,【While循环】中也是这么解决。

免费下载试用:https://support.i-search.com.cn/

发布了64 篇原创文章 · 获赞 3 · 访问量 3010

猜你喜欢

转载自blog.csdn.net/weixin_45841201/article/details/103580709