影刀RPA_天猫店铺全部宝贝评论获取_源码解读

目录

一、项目简介

二、项目结构

三、项目特点和核心代码

项目特点

核心代码模块

1. 主程序入口(main.py)

2. 数据获取模块(get_data.py)

3. 流程配置模块(process5.py)

四、适用场景

五、常见问题与建议

常见问题

建议

六、源码下载

七、后续扩展方向


一、项目简介

本项目是一个基于影刀RPA(ShadowBot)开发的自动化流程项目,主要用于数据获取与处理的自动化任务。项目通过模块化设计实现了数据采集、处理和流程控制等功能,支持通过可视化流程设计器(.flow.json文件)定义和管理自动化步骤,适用于需要定期执行重复数据操作的业务场景。

二、项目结构

影刀RPA_天猫店铺全部宝贝评论获取_源码解读_第1张图片

项目采用标准影刀RPA项目结构,主要包含以下目录和文件:

xbot_robot/
├── .dev/                 # 开发环境相关文件
│   ├── *.flow.json       # 影刀流程设计文件
│   ├── *.pdb             # 流程调试信息文件
│   ├── icon/             # 应用图标资源
│   └── screenshot/       # 流程截图
├── resources/            # 项目资源文件
│   └── images/           # 图片资源
├── __pycache__/          # Python编译缓存
├── main.py               # 项目入口文件
├── get_data.py           # 数据获取模块
├── process5-14.py        # 流程处理模块
├── selectors.xml         # UI元素选择器配置
├── package.json          # 项目依赖配置
└── settings.json         # 项目设置

主要文件说明:

  • .flow.json文件:影刀RPA可视化流程设计文件
  • main.py:项目主程序入口
  • get_data.py:数据获取功能实现
  • process*.py:各流程步骤的实现代码
  • selectors.xml:UI元素定位选择器配置

三、项目特点和核心代码

项目特点

  1. 模块化设计:将不同功能拆分为独立模块,便于维护和扩展
  2. 可视化流程:通过.flow.json文件实现可视化流程设计
  3. 数据处理自动化:实现从数据获取到处理的全流程自动化
  4. 可配置选择器:通过selectors.xml管理UI元素定位,适应界面变化

核心代码模块

1. 主程序入口(main.py)
import xbot
import xbot_visual
from . import package
from .package import variables as glv
import time

def main(args):
    try:
        # 调用流程5并获取抓取数量
        process_result = xbot_visual.process.run(process="process5", package=__name__, inputs={
            }, outputs=[
            "抓取数量",
        ], _block=("main", 1, "调用流程"))
        
        # 使用抓取数量作为输入调用流程14
        _ = xbot_visual.process.run(process="process14", package=__name__, inputs={
            "pages": lambda: process_result.抓取数量,
            }, outputs=[
        ], _block=("main", 2, "调用流程"))
    finally:
        pass
2. 数据获取模块(get_data.py)
class GetComment:
    def __init__(self, itemId, pages):
        self.itemId = itemId
        self.pages = pages
        
    def get_cookie(self):
        # 获取当前浏览器cookie
        web_page = web.get_active(mode='chrome')
        cookies = web_page.get_cookies()
        cookie_dict = {}
        for cookie in cookies:
            name = cookie['name']
            value = cookie['value']
            cookie_dict[name] = value
        return cookie_dict

    def get_params(self):
        # 生成请求参数
        datum = self.get_data()
        for data in datum:
            timestamp = utlis.get_timestamp()
            token = self.get_token()
            sign = utlis.get_result(token, timestamp, data)
            params = {
                    'jsv': '2.7.2',
                    'appKey': '12574478',
                    't': timestamp,
                    'sign': sign,
                    'api': 'mtop.alibaba.review.list.for.new.pc.detail',
                    'v': '1.0',
                    'data': data,
                }
            yield params

    def exe_request(self):
        # 执行API请求并处理响应
        _params = self.get_params()
        _cookies = self.get_cookie()
        data_list = []
        for params in _params:
            response = requests.get('https://h5api.m.tmall.com/h5/mtop.alibaba.review.list.for.new.pc.detail/1.0/',
            params=params,
            cookies=_cookies)
            text = response.text
            # 正则提取JSON数据
            pattern = re.compile(r'({.*})', re.DOTALL)
            match = pattern.search(response.text)
            text = json.loads(match.group(1))
            items = text['data']['module']
            # 处理返回数据...
3. 流程配置模块(process5.py)
import xbot
import xbot_visual
from . import package
from .package import variables as glv
import time

def main(args):
    抓取数量 = 5
    try:
        # 显示自定义对话框获取用户输入
        dialog_result = xbot_visual.dialog.show_custom_dialog(settings="{\"editors\":[{\"type\":\"Label\",\"value\":\"运行前,请自行【登录淘宝】\"},{\"type\":\"TextBox\",\"label\":\"抓取数量(页)\",\"VariableName\":\"pages\",\"value\":\"5\"}]}", 
            storage_key="d93bdd09-1b09-4980-8b8a-60be387bad1c", 
            _block=("配置信息", 1, "打开自定义对话框"))
        
        # 检查用户是否点击确定按钮
        if xbot_visual.workflow.test(operand1=dialog_result.pressed_button, operator="!=", operand2="确定", _block=("配置信息", 2, "IF 条件")):
            exit(0)
        
        # 设置抓取数量
        if xbot_visual.workflow.test(operand1=dialog_result.pages, operator="empty value", operand2="", _block=("配置信息", 5, "IF 条件")):
            抓取数量 = xbot_visual.programing.variable(value=lambda: 5, _block=("配置信息", 6, "设置变量"))
        else:
            抓取数量 = xbot_visual.programing.variable(value=lambda: int(dialog_result.pages), _block=("配置信息", 8, "设置变量"))
    finally:
        args["抓取数量"] = 抓取数量

四、适用场景

  1. 数据采集与整理:定期从网站、应用或数据库获取数据并进行格式化处理
  2. 报表自动生成:将处理后的数据自动生成标准化报表
  3. 重复性数据录入:替代人工进行表单填写、数据录入等重复工作
  4. 系统监控与预警:监控特定数据指标,异常时触发预警机制
  5. 批量文件处理:自动化完成文件转换、重命名、分类等操作

五、常见问题与建议

常见问题

  1. 元素定位失败:目标应用界面更新导致选择器失效
  2. 流程执行中断:网络不稳定或目标系统响应延迟
  3. 数据格式异常:数据源格式变化导致处理失败
  4. 权限问题:RPA程序缺乏必要的系统访问权限

建议

  1. 定期维护selectors.xml文件,更新UI元素选择器
  2. 在关键步骤添加重试机制和超时处理
  3. 增加数据校验步骤,处理异常数据格式
  4. 以管理员权限运行影刀RPA程序
  5. 定期备份流程设计文件和配置
  6. 为重要操作添加日志记录,便于问题排查

六、源码下载

  1. 通过影刀RPA客户端应用市场获取。
  2. 私聊

七、后续扩展方向

  1. 多数据源支持:扩展支持更多类型的数据源接入
  2. AI能力集成:引入OCR、NLP等AI技术处理非结构化数据
  3. 任务调度优化:添加更灵活的定时任务和触发机制
  4. 结果可视化:增加数据可视化报表展示功能
  5. 远程监控:开发Web控制台实现远程监控和管理
  6. 异常自愈:增强系统容错能力,实现常见故障的自动恢复
  7. API接口开发:提供外部系统调用接口,实现与其他系统集成

你可能感兴趣的:(rpa,自动化,影刀)