本案例通过淘宝商品信息抓取的实例来教大家如何使用外置chrome浏览器搭建应用。

1.场景介绍

在淘宝网站输入商品关键字,自动抓取所有分页的商品信息,如商品名称、价格、店铺、销量等,并将其存储到数据表格以便查看。

教程内容:本教程包含三节内容,分别为页面搜索循环切换分页抓取并存储信息

2.新建应用

点击【新建编码模式应用】,选择【机器人类型】,再点击【确认新建】

此处有三种机器人类型以及自定义SDK可供选择,具体介绍见【产品使用手册】


image.png


image.png


3.控件录制

代码编辑区使用chrome浏览器打开 淘宝 网址 www.taobao.com ,点击调试运行。点击 定位网页元素 ,录制 输入框 和 搜索 按钮。


录制宝贝价格、名称、链接、店铺名称、购买人数、下一页等控件。用于信息获取。

录制控件思路:

录制注意点:





4.界面设计

此次使用 数据视图 进行保存数据。


5.代码编写

上文中展示了一种代码复制方式—— 复制录制控件时下方代码

下面视频中将再次展示两种代码编辑方式。手动编辑代码 和 快捷选择模块编辑代码

由于rpa支持中文作为变量名,所以视频中会使用中文作为变量,增加可读性。

代码逻辑:


此时已获取完成一个页面的数据,下面增加下一页的录制和代码编辑,获取更多页的宝贝数据。

此视频展示录制下一页控件,代码编辑,以及效果展示。



6.完整代码展示


from rpa.core import *
from rpa.utils import *
import rpa3 as rpa # 使用V3引擎

def start():
    # 在此处开始编写您的应用
    page = rpa.chrome.create("www.taobao.com")
    page.input('输入框', '盆栽', index = 1, simulate = False, replace = True)
    page.click('搜索', index = 1, simulate = True, button = 'left')
    # 此时发现在点击搜索按钮以后页面跳转,要加载一段时间,我们暂时使用sleep测试
    sleep(3)
    # 创建数据视图
    datat = rpa.datatable_pkg.Datatable()
    # 设置循环用于控制获取页数
    for y in range(10):
        # 获取控件个数,用于控制循环次数
        个数 = page.element_count("价格")
        for i in range(1, 个数+1):
            # 通过变量i获取每一个控件的信息
            价格 = page.text("价格", index=i)
            付款人数 = page.text("付款人数", index=i)
            宝贝名称 = page.text("宝贝名称", index=i)
            宝贝链接 = page.attr("宝贝名称", attrname="href", index=i)
            店铺名称 = page.text("店铺名称", index=i)
            发货地 = page.text("发货地", index=i)
            # 增加一行
            row = datat.addrow()
            # 根据行号以及列名写入数据
            datat[row]["宝贝价格"] = 价格        
            datat[row]["宝贝名称"] = 宝贝名称
            datat[row]["宝贝链接"] = 宝贝链接
            datat[row]["店铺名称"] = 店铺名称
            datat[row]["购买人数"] = 付款人数
            datat[row]["发货地"] = 发货地
        page.click('下一页', index = 1, simulate = True, button = 'left')
        # 由于点击下一页之后页面加载一段时间,我们暂时使用sleep
        sleep(3)