请将题目填写完整
上一单元
单元(共单元)
下一单元

第十三课(07):案例实战:抓取电商平台商品数据

30分钟




【课程目标】


本节课程主要通过对选择器的内容节点信息的深入学习,带大家一起学会选择器的基本编辑与使用、什么是动态元素、如何寻找稳定元素特征值?最后完成一个电商抓数案例。



课时内容:



目录:

  • 知识点1-- (实战必学)选择器&自动化原理(课程时长:6分钟)
  • 知识点2-- 找不到元素? 初识"动态元素"(课程时长:5分钟)
  • 知识点3-- 元素不稳定?巧用"元素探测器"(课程时长:5分钟)
  • 知识点4--选择器必知必会-3个用法(课程时长:2分钟)
  • 知识点5--选择器方法1-通配符(课程时长:2分钟)
  • 知识点6--选择器方法2-变量(课程时长:8分钟)
  • 案例实战:抓取电商平台商品数据(课程时长:30分钟)




二、学习内容:


  • 课程简介:案例实战:抓取电商平台商品数据(课程时长:30分钟)
  • 学习目标:熟悉 ★★
  • 难易程度:较难 ★★★
  • 讲义下载:文末进群-获取“讲义PPT”




2.1 视频教程




2.2 文档教程


一、案例背景描述

二、具体操作步骤


第一部分 准备工作


开始前,先梳理好要做的事情,也就是想用"RPA"自动化哪些步骤:

第1步、创建项目&初始化流程 第2步、登录京东网站 第3步、搜索商品关键字 第4步、获取商品数据 第5步、将商品数据保存至excel文件 第6步、运行流程并查看结果


前置条件

  • 已有京东账号(本节课程将使用用户名+密码的方式登录京东并抓取数据,开始前请确保已有账号);
  • 安装最新版云扩RPA编辑器




第二部分 正式编写自动化流程


第1步、创建项目&初始化流程

  • (1)打开云扩RPA编辑器并创建名为获取商品信息的流程



  • (2)为了确保流程稳定运行,且不会覆盖已有文件产生冲突,并始终把最新获取的数据保存至一个名为商品数据.xlsx的excel文件中,我们需要做一些特定处理,逻辑如下:


a. 首先判断相对路径下是否有文件商品数据.xlsx,此文件将用于保存抓取的商品信息。

b. 若本地已有此文件则先删除,在后续流程中重新创建此文件;若没有则跳过此步骤。



具体做法如下:

(1). 创建序列

  • 在左侧组件库【流程控制】目录下找到组件【序列】拖拽至设计面板,并连接在【Start】节点下方。

    • 序列组件适用于逻辑简单的顺序工作流场景。
    • 此节这段逻辑比较简单只有2步,判断文件是否存在,存在则删除,所以可以选择使用序列
    • 当然,同样也可以选择使用流程图流程图适用于逻辑判断较多且复杂的业务场景,想了解更多请点击这里



小技巧:

  • 为了让自己或其他伙伴更好的理解要做的事情,可以更改组件名称或选中组件并鼠标右键,

  • 在菜单中选择批注,填写内容并固定在组件上。完成后如下图:

 



(2).判断文件是否存在

【A】. 双击判断文件是否存在此组件,进入此组件中。并实现逻辑:

判断商品数据.xlsx文件是否存在,若存在则先删除;若不在则跳过,在后续的步骤中重新创建



  • 从左侧组件目录中搜索组件【文件/文件夹是否存在】,并拖拽至设计面板。在弹窗中的组件属性中填写如下图中内容。点击【确定】回到设计面板。

路径:"商品数据.xlsx" 路径是否存在:exists 



注意

exists是变量,用于存储判断结果,点击其右侧fx后在弹窗中点击使用自动创建变量exists并应用在组件中。



【B】. 在组件库找到组件条件(if) 并拖拽至组件文件/文件夹是否存在下方。在弹窗中填写逻辑判断exists == true ,如下图。



【C】. 在组件条件(if)中的条件成立区域中,把组件删除文件/文件夹拖拽至此处。并在填写如下内容:

文件:“商品数据.xlsx”




【小结】:

到此步咱们完成了流程初始化的逻辑:判断【商品数据.xlsx】文件是否存在,若存在则先删除,若不在则跳过。




第2步、登录京东网站


本节将使用流程运行前填写用户名密码商品关键字的方式搜索相关信息,即流程运行前先填写这些信息后再执行。


这样写的好处是只要填写了用户名、密码和商品关键字,团队中的其他人都可以使用这个流程,无需再修改流程。


接下来为大家讲解如何实现及如何使用。本章节将自动化以下逻辑:

  • 【A】打开京东网站首页

  • 【B】在首页判断是否显示关键字【请登录】,若出现关键字【请登录】则是为当前未登录;若未出现则断定为当前是未登录状态

  • 【C】若当前是已登录状态,则直接根据商品关键字抓取数据;若当前是未登录状态,则使用【用户名+密码】完成登录

  • 【D】点击登录按钮,指定元素完成登录



【A】. 打开京东网站


注意:

  • 在开始前请先安装浏览器扩展,以确保可以实现自动化。
  • 本节将在Chrome浏览器中操作,则需先安装【Chrome扩展】





(1).打开浏览器

  • 点击左上角流程图_Root回到第一个设计面板,从左侧组件库找到打开浏览器并拖拽到第一个组件下方,填写相应批注。如图所示:




(2).填写对应网址

  • 双击打开浏览器组件进入内部编辑区域,并在网址属性中填写京东地址:

网址:"https://www.jd.com" 浏览器类型:Chrome




【B】.判断是否已登录

  • 若在已登录的情况下,避免重复登录做多余的事情,我们可以先判断是否已登录,若已登录则跳过登录步骤,直接开始搜索。

把组件判断元素是否存在拖拽进来




  • 点击【指定元素】,此时编辑器最小化
  • 在京东首页上把鼠标移动至【你好,请登录】位置
  • 待边框高亮时单击即可完成录制。

如下视频所示:



  • 在此组件的属性结果中点击fx并生成变量isLogin,用于保存判断结果。



  • 判断元素是否存在组件下方添加组件条件(if),并在属性判断条件中设置:

    判断条件:isLogin == true


  • 条件成立:

    条件成立区域中添加组件点击,即在页面上点击请登录前往登录页面;

    同上,使用指定元素在页面上选取请登录位置高亮后回到设计面板。如下图所示:

  • 条件不成立:

    条件不成立区域中添加组件写入日志,并填写内容“已有用户登录!”;

    让我们可以在日志中可以明白已登录且跳过了登录步骤。如下图所示:

 

【C】.登录

  • (1).在浏览器手动点击请登录按钮 。

回到编辑器设计面板,并在点击组件下方在增加一个点击组件,以完成自动点击页面上的账号登录;

接下来我们继续从组件面板拖拽2个输入文本组件放在下方,并使用其指定元素分别指定页面上的用户名和密码框。

  

(2).定义流程参数和赋值

为了让流程使用者在不修改流程的前提下使用不同账号和查询不同商品,我们可以使用参数的方式实现。

流程参数适用于在运行流程时期望把特定信息告诉流程,使流程根据这些信息做相应的事情。例如在这个流程中:

小王可以输入自己的账号+想要搜索的商品关键字“啤酒”告诉流程,让流程把啤酒相关的数据抓取下来;

小王可以输入自己的账号+想要搜索的商品关键字“威士忌”告诉流程,让流程把威士忌相关的数据抓取下来;


【实现逻辑】 如下图所示:

  • 步骤a: 打开参数面板
  • 步骤b: 定义参数 用户名 、密码
  • 步骤c: 把用户名赋值给第一个输入文本组件,即在页面用户名文本框中填写用户名;
  • 步骤d: 把密码赋值给第一个输入文本组件,即在页面密码框中填写密码;




注意:

为了确保密码的安全性,建议参数密码的参数类型选择为 Encoo.DataType.Password,

 这样的话在输入密码时则会以星号*的方式显示。




  • 【D】.点击登录


在最下方再次拖入一个点击组件,使用指定元素选取页面上的登录按钮。

为了确认是否写的准确,可以先尝试运行一次流程,预期结果是成功完成登录,并回到京东首页。

 




第3步、搜索商品关键字


完成登录后,在首页的输入框中搜索商品关键字


  • 回到打开浏览器设计区域,在序列下方添加组件输入文本,用于在搜索框中输入商品关键字



  • 单击组件输入文本指定元素选取浏览器页面上的搜索框,待黄色高亮时单击并返回到设计面板。
  • 参数面板添加String类型的参数商品关键字并设置默认值 “茅台”,再把填充到输入文本组件属性中。如下图所示:
  • 输入文本下方添加组件点击,用于自动化点击页面上的搜索按钮。





第4步、获取商品数据

根据商品关键字查看搜索结果,并从商品列表中获取商品名称和价格信息。将数据保存在变量dataTable中;

在这一步我们使用获取结构化数据组件完成这些操作。


补充说明: 获取结构化数据组件适用于抓取页面表格、列表等结构化的数据,仅需几步简单点击就可完成,在下面视频中将会为大家讲解如何操作。想了解更多,可以看这里



在最下方添加组件获取结构化数据,并完成以下事情:

  • 指定搜索结果页面为数据源
  • 选取商品名称为第一列
  • 选取价格为第二列
  • 指定最多获取50行内容
  • 将数据保存在变量dataTable中



选中获取结构化数据组件,打开变量面板,将变量dataTable范围设置为流程图_Root, 以用于接下来保存此数据至Excel文件中。





第5步、将商品数据保存至excel文件


  • (1).将根据商品关键字搜索的结果保存至excel文件商品数据.xlsx中。


  • (2).从组件库Excel目录下找到组件打开/新建并拖拽至设计面板,连接在打开浏览器下方,在弹窗中填写相应属性,如下图示。

文件路径:"商品数据.xlsx" ,当前项目的相对路径 新建文件:勾选,即每次流程执行时都会新建此文件 自动保存:勾选,即有新数据时则会自动保存 可视:勾选,即整个操作过程可在屏幕上看到




  • (3).将数据变量dataTable保存至Excel中。在【打开/新建】组件中添加组件【写入区域】,并指定如下属性:

工作表:"Sheet1" 起始单元格:"A1" 数据表:dataTable,即存储的内容为变量dataTable数据




第6步、运行流程并查看结果


  • (1).运行

在编辑器工具栏中点击运行,并在弹窗中分别输入京东用户名、密码和欲检索的商品关键字。



  • (2).查看结果

运行结束后,在项目的相对路径目录下找到商品数据.xlsx



  • (3).双击商品数据.xlsx文件查看商品数据



总结

到这里咱们就已完成了整个流程编写,整个过程中我们:

  1. 为了流程更稳定,在流程开始阶段添加了数据文件是否存在的判断逻辑;
  2. 为了避免多余的步骤,实现了搜索前先判断是否已登录的逻辑;
  3. 在判断是否登录及接下来的步骤中学会了简单使用指定元素功能指定页面控件的能力;
  4. 了解了如何使用获取结构化数据抓取搜索结果列表;
  5. 把搜索出的商品数据成功写入了excel文件;
  6. 在流程执行时如何使用不同账号和关键字搜索商品。



小技巧:

  • 在流程编写过程中多使用【批注】功能,流程会更容易维护哦

  • 使用编辑器自带的【FX】功能,会自动产生变量减少出错的概率

  • 选中组件右键单击或按F1可快速查看帮助文档,文档有详细的示例说明





END:

论坛相关讨论

    需要帮助或反馈问题?去云扩论坛参与讨论