大家好,我是一方。

今天我们一起看一下如何使用rpa自带的功能来抓取自己想要的页面元素,这里我们以抖音为例来抓取某个领域的作者列表。

想要获取页面元素,大概的流程为:确定页面元素、分析页面元素、使用自带的工具便捷抓取元素。

我们正式开始,首先新建一个抖音作者列表的项目,并快速把启动浏览器和打开、关闭浏览器的流程拉一下,关闭浏览器的流程先别连上,不然刚打开浏览器就关闭了,等测试没问题再关:

老规矩,将打开浏览器流程中第一行的Dim hWeb删除。

新建一个浏览器的全局变量:

打开浏览器流程,打开浏览器的同时设置打开的链接为 https://www.douyin.com:

我们执行一下,可以看到会有一个弹窗挡住了搜索框,我们需要对这个弹窗处理一下,具体逻辑是:当打开页面并且页面加载完成后如果检测到这个弹窗则点击关闭按钮,关闭弹窗:

我们添加一个等待网页加载的命令并且点击从界面上选取元素:

这里我选取搜索框,也就是说我们判断搜索框是否出现,当搜索框出现时则判断页面加载完成了,这里为啥不判断这个弹窗呢?因为这个弹窗不是每次都弹,要是判断这个弹窗的话,那可能一直取不到元素,当然也有破解之法,一个是超时、一个是错误可继续执行:

我们继续先判断搜索框,当搜索框出现后过几秒再判断弹窗是否出现,我们先选择输入控件:

我们看看元素出现时的输出和未出现时(我随便选一个)的输出:

我们切换为源代码模式看看它的命令原型:

我们再看看官方文档是如何定义这个命令的:

这里的iDelayAfter和iDelayBefore延时伪代码是这样:

输入参数的类型都写了,输出参数的类型却没写,只知道是枚举的0(不存在)和1(存在),推断应该是number类型:

所以我们只需要判断iRet即可知道元素是否存在了,超时也为不存在。

代码如下,我们自己写一个判断:

再判断弹窗是否出现,出现则关闭。此时出现了尴尬的一幕,自带的工具无法选择到弹窗,而是选择到了底层的video:

那么此时也有办法解决,就是使用js来检测元素是否存在:

还得是js好使,一行js搞定!

当元素存在时,我们执行:

OK,关闭弹窗。

我们将js代码写一份rpa格式的:

Dim bRet,iRet,checkCloseExistJsCode,closeExist,clickCloseExistJsCode

hWeb = WebBrowser.Create("chrome","https://www.douyin.com",30000,{"bContinueOnError":false,"iDelayAfter":2000,"iDelayBefore":200,"sBrowserPath":"","sStartArgs":""})

iRet = WebBrowser.WaitPage(hWeb,@ui"输入控件<input>1",6000,{"bContinueOnError":true,"iDelayAfter":300,"iDelayBefore":200})

If iRet

Log.Info("存在")

checkCloseExistJsCode = '''

document.querySelector("div.dy-account-close")

'''

clickCloseExistJsCode = '''

document.querySelector("div.dy-account-close").click()

'''

// 如果不存在弹窗则closeExist为null

closeExist = WebBrowser.RunJS(hWeb,checkCloseExistJsCode,true,{"bContinueOnError":true,"iDelayAfter":300,"iDelayBefore":200})

If closeExist

WebBrowser.RunJS(hWeb,clickCloseExistJsCode,true,{"bContinueOnError":false,"iDelayAfter":300,"iDelayBefore":200})

End If

Else

Log.Info("不存在")

End If

非源代码流程:

好,我们进入新增一个流程,作用是在输入框输入关键字并搜索:

搜索的详情流程如下:

分别是先在搜索框输入rpa是什么、再点击搜索按钮、再点击用户tab,和小红书差不多。

接下来我们分别抓取抖音作者的昵称、抖音号,我们点击数据抓取:

我们首先选择昵称:

再次选择另一个作者的昵称:

点击确定:

标题就有了:

我们同理拿到抖音号:

OK,昵称和抖音号都抓取到了,其他字段也可以同样方法获取。

这篇文章就到这里啦!如果你对文章内容有疑问或想要深入讨论,欢迎在评论区留言,我会尽力回答。同时,如果你觉得这篇文章对你有帮助,不妨点个赞并分享给其他同学,让更多人受益。

想要了解更多相关知识,可以查看我以往的文章,其中有许多精彩内容。记得关注我,获取及时更新,我们可以一起学习、讨论技术,共同进步。

感谢你的阅读与支持,期待在未来的文章中与你再次相遇!

rpa使用自带数据抓取方式抓取页面元素的更多相关文章

  1. 测试开发Python培训:抓取新浪微博抓取数据-技术篇

    测试开发Python培训:抓取新浪微博抓取数据-技术篇   poptest是国内唯一一家培养测试开发工程师的培训机构,以学员能胜任自动化测试,性能测试,测试工具开发等工作为目标.在poptest的se ...

  2. Scrapy 通过登录的方式爬取豆瓣影评数据

    Scrapy 通过登录的方式爬取豆瓣影评数据 爬虫 Scrapy 豆瓣 Fly 由于需要爬取影评数据在来做分析,就选择了豆瓣影评来抓取数据,工具使用的是Scrapy工具来实现.scrapy工具使用起来 ...

  3. 网站爬取-案例三:今日头条抓取(ajax抓取JS数据)

    今日头条这类的网站制作,从数据形式,CSS样式都是通过数据接口的样式来决定的,所以它的抓取方法和其他网页的抓取方法不太一样,对它的抓取需要抓取后台传来的JSON数据,先来看一下今日头条的源码结构:我们 ...

  4. VBA GET POST HTTP VBA网络爬虫 最新Excel自动获取股票信息源码 EXCEL自动获取网络数据 最新VBA自动抓取股票数据源码

    最新Excel自动获取股票信息源码 EXCEL自动获取网络数据 最新VBA自动抓取股票数据源码 通过接口获取股票数据内容的主要优点包括以下几点: 实时性高:通过访问股票数据接口,可以实时获取到股票的实 ...

  5. 【转载】ASP.NET以Post方式抓取远程网页内容类似爬虫功能

    使用HttpWebRequest等Http相关类,可以在应用程序中或者网站中模拟浏览器发送Post请求,在请求带入相应的Post参数值,而后请求回远程网页信息.实现这一功能也很简单,主要是依靠Http ...

  6. (3)分布式下的爬虫Scrapy应该如何做-递归爬取方式,数据输出方式以及数据库链接

    放假这段时间好好的思考了一下关于Scrapy的一些常用操作,主要解决了三个问题: 1.如何连续爬取 2.数据输出方式 3.数据库链接 一,如何连续爬取: 思考:要达到连续爬取,逻辑上无非从以下的方向着 ...

  7. 写论文,没数据?R语言抓取网页大数据

    写论文,没数据?R语言抓取网页大数据 纵观国内外,大数据的市场发展迅猛,政府的扶持也达到了空前的力度,甚至将大数据纳入发展战略.如此形势为社会各界提供了很多机遇和挑战,而我们作为卫生(医学)统计领域的 ...

  8. 02. 爬取get请求的页面数据

    目录 02. 爬取get请求的页面数据 一.urllib库 二.由易到难的爬虫程序: 02. 爬取get请求的页面数据 一.urllib库 urllib是Python自带的一个用于爬虫的库,其主要作用 ...

  9. C#使用Selenium实现QQ空间数据抓取 说说抓取

    上一篇讲的是如何模拟真人操作登录QQ空间,本篇主要讲述一下如何抓取QQ说说数据 继续登录空间后的操作 登陆后我们发现QQ空间的菜单其实是固定的,只需要找到对应元素就可以,继续XPath 可以得到地址 ...

  10. Android笔记——Android中数据的存储方式(一)

    Android中数据的存储方式 对于开发平台来讲,如果对数据的存储有良好的支持,那么对应用程序的开发将会有很大的促进作用. 总体的来讲,数据存储方式有三种:一个是文件,一个是数据库,另一个则是网络.其 ...

随机推荐

  1. 将字符串变成数组split

    字符串变成数组,常用来获取数组中我们需要的值. var str="http://op/adfie/life.png"; let arr=str.split('.'); consol ...

  2. css hover频繁闪烁

    今天遇见一个问题. 在鼠标放上 图片上的时候. 删除图标一直不停的闪烁. 我当时觉得很奇怪,父子关系的结构 不应该闪烁呀. 看了下html和css,发现子元素(要hover)的元素是绝对定位了的 于是 ...

  3. 原生js拖拽元素(onmouseup不能够触发的原因)

    我们经常会遇见拖拽某一个元素的场景,拖拽也是很常用的: 这次拖拽遇见一个问题,有时在拖拽的时候吗,鼠标松开,元素仍然可以拖拽: 经过查阅资料,发现: 会触发H5原生的拖拽事件.并且不会监听到onmou ...

  4. gRPC如何保障数据安全传输

    什么是 gRPC? gRPC 是由 Google 开发的高性能.开源的 RPC(Remote Procedure Call)框架,用于在客户端和服务器之间进行通信.它基于 Protocol Buffe ...

  5. OS X 下安装 pycurl

    1 (venv) ➜ pythonProject4 find / -iname ssl.h 2 find: /usr/sbin/authserver: Permission denied 3 /usr ...

  6. PHP实现字符串反转

    方法一 用自带的函数strrev echo strrev('hello'); 方法二 自写循环方法 $str = 'hello'; $i = strlen($str); $newStr=''; whi ...

  7. 2022年“腾讯杯”大学生程序设计竞赛 死去的 Elo 突然开始攻击我 题解

    题目链接:死去的 Elo 突然开始攻击我 容易知道,如果暴力对某个区间而言进行查询,我们可以考虑使用并查集,开一个桶,每次添加一个数 \(val\),那么如果已经存在了 \(val-1\) 或者 \( ...

  8. 深入浅出 testing-library

    我们是袋鼠云数栈 UED 团队,致力于打造优秀的一站式数据中台产品.我们始终保持工匠精神,探索前端道路,为社区积累并传播经验价值. 本文作者:佳岚 The more your tests resemb ...

  9. mysql数据库应用

    一:安装数据库管理工具 1.进入navicat官网https://navicat.com.cn/ 2.下载navicat for mysql,选免费试用也可直接购买 3.安装好后一直点下一步即可 二: ...

  10. Hive-安装和部署(Hive3.1.2)

    (一)安装前提 (1) 安装JDK1.8及以上版本 (2) 已经安装MySQL,推荐5.7. (3) 已经安装Hadoop. JDK.MySQL.Hadoop的安装,本文不再介绍. (二)安装Hive ...