亚马逊-商品排名获取_实在智能RPA源码分析

一、项目简介

        本项目是一个基于实在智能RPA技术的亚马逊商品排名获取工具,旨在通过自动化流程从亚马逊网站采集商品排名数据。该工具支持用户自定义关键词、目标站点URL和采集页数,能够批量读取Excel中的关键词并进行多页数据采集,最终将结果整理输出。项目采用模块化设计,结合了网页自动化、数据处理和异常处理等功能,适用于电商卖家、市场调研人员等需要监控商品排名的用户。

二、项目结构

/
├── .sz/
│   └── breakpoint.json
├── conf/
│   └── 亚马逊流程配置.xlsx
├── config.json
├── customConfig/
│   └── 请填写流程信息/
├── extensions/
├── log/
├── main.sz
├── projects/
│   ├── child_modules/
│   ├── flow.py
│   ├── flow_modules/
│   │   └── FPaVM.py
│   ├── global_data.py
│   ├── gpt_modules/
│   ├── requirements.txt
│   └── rpaRoot.py
├── res/

三、项目特点和核心代码

1. 流程控制模块

项目采用模块化的流程控制设计,通过队列管理任务执行顺序,实现了灵活的流程跳转和错误处理机制。

# projects/flow.py
FLOW_QUEUE = []

# 亚马逊-商品排名获取
def flow_node_FPaVM():
    sz_count = 0
    overReTry = False
    while True:
        try:
            run_module({ "module_path": "flow_modules.FPaVM" }, "main", SZEnv['rpa'], _sz_process_expr_="")
            break
        except Exception as e:
            _e = e
            sz_count += 1
            if sz_count > 0:
                overReTry = True
                _error  = SZEnv['rpa'].handling_error_info(e)
                break
    if overReTry:
        raise _e
    else:
        FLOW_QUEUE.append("flow_node_w9G3u")

# 启动流程
def main(rpa):
    flow_node_hsxAW()
    while len(FLOW_QUEUE) > 0:
        flowName = FLOW_QUEUE.pop(0)
        eval(flowName + "()")

2. 全局变量与配置管理

项目通过global_data.py统一管理全局变量、配置参数和元素定位信息,实现了配置的集中化和模块化引用。

# projects/global_data.py
globalConfig = {"客户名称":"","is_online":0,"项目ID":"","批次ID":"","日志生效标志":"否","日期循环标志":"否","开始日期":"","结束日期":"","时间类型":"日","操作平台":["亚马逊"],"项目文件路径":"","机器人名称":"RPA机器人编码001","短信队列":"","流程类型":"功能操作","日志固定表头":"["店铺","账号","最后运行结果"]"}
outputConfig = {}
抛出异常信息 = None
任务块参数 = {}
任务配置参数 = {}
任务执行参数 = {}
任务上下文 = {}
模式列表 = []
网页对象 = None
globalVar = { "globalConfig": globalConfig,"outputConfig": outputConfig,"抛出异常信息": 抛出异常信息,"任务块参数": 任务块参数,"任务配置参数": 任务配置参数,"任务执行参数": 任务执行参数,"任务上下文": 任务上下文,"模式列表": 模式列表,"网页对象": 网页对象 }

# 元素定位配置加载
def get_element_path(pathname):
    current_file_path = __file__
    two_levels_up_path = os.path.dirname(os.path.dirname(current_file_path))
    id_path = os.path.basename(two_levels_up_path)

    element_path = os.path.join(two_levels_up_path, pathname)
    element_map = {}

    try:
        with open(element_path, encoding='utf-8') as file:
            if pathname == "elements.json":
                element_data = json.load(file)
                element_map = element_data.get("elementMap", {})
            elif pathname == "globalVariable":
                element_data = json.load(file)
                element_map = json.loads(
                    find_element_dict(element_data).get("defaultValue", "{}")
                )
        prefix = f"projects\dependency_modules\{id_path}"
    except:
        pass 

    if "dependency_modules" in current_file_path:
        recursive_update_dict(element_map, ["resDirPath", "filePath"], prefix)

    return filter_element_map(element_map)

3. 亚马逊商品排名采集逻辑

FPaVM.py实现了核心的商品排名采集功能,包括用户参数交互、文件校验、Excel读取和网页数据采集等流程。

# projects/flow_modules/FPaVM.py
def main(rpa, **kw):
    # 读取用户自定义参数
    自定义对话框结果,关键词文件,站点URL,采集页数 = Dialog.GetConfigV4(SZEnv['rpa'], "请填写流程信息", [
        {"name":"关键词文件","label":"请选择搜索关键词文件","tips":"请选择excel文件,将关键词填入A列中,支持多个关键词","fileOrFolder":"openFile","value":"","isRequired":"1","type":"File","number":1,"id":"NS5Gn"},
        {"name":"站点URL","label":"请输入需要采集数据的亚马逊站点网址","tips":"请输入需要采集数据的亚马逊站点网址","value":"https://www.amazon.com/","isRequired":"1","type":"TextBox","number":2,"id":"iN703"},
        {"name":"采集页数","label":"请输入需要采集商品的页数","tips":"请输入需要采集商品的页数","fileOrFolder":"openFile","value":1,"isRequired":"1","type":"File","number":3,"id":"4I0Cr"},
        {"type":"runBy","value":2},
        {"type":"ExeMode","value":"1"}], "KQ0p5", 0, 3, 0, var_ret=0, delay_before_new=0, delay_after_new=0, exc_retry=0, retry_count=1, retry_interval=1, skip_err=0, log_exc=1, var_names=["自定义对话框结果","关键词文件","站点URL","采集页数"], _position=("FPaVM","zUPII","亚马逊-商品排名获取","自定义对话框","3","Dialog.GetConfigV4"))

    # 参数校验
    if (not 自定义对话框结果["confirm"]):
        sys.exit()
    try:
        if not File.FileExists(SZEnv['rpa'], 关键词文件):
            raise Exception("文件不存在,请选择正确的关键词文件")
        匹配结果 = Regex.TestNew(SZEnv['rpa'], 站点URL, 6, "w{3}\..*?\..*?")
        if (not 匹配结果):
            raise Exception("亚马逊站点有误,请检查亚马逊站点网址")
        匹配结果 = Regex.TestNew(SZEnv['rpa'], 采集页数, 6, "\d+")
        if (not 匹配结果):
            raise Exception("采集业务有误,请检查采集页数")
    except Exception as ex:
        异常对象 = SZEnv['rpa'].format_ex(ex)
        Log.Error(SZEnv['rpa'], str(异常对象))
        raise

    # 读取Excel关键词
    Excel文件 = Excel.Cs_OpenV3(SZEnv['rpa'], 关键词文件, 1, "默认", 1, 1, "", "", 0, 0)
    sheet列表 = Excel.Cs_GetName(SZEnv['rpa'], Excel文件, "全部")

    # 遍历关键词并采集数据
    for 循环位置,sheet in enumerate(get_list(sheet列表,0, 1,-1)):
        if (sheet == "排名信息"):
            continue
        # 省略具体采集逻辑...

    Dialog.Notice(SZEnv['rpa'], "开始采集亚马逊商品排名", "提醒", 2000)

四、适用场景

  1. 电商卖家商品监控:定期采集特定关键词下自家商品的排名变化,掌握市场竞争态势
  2. 竞品分析:监控竞争对手商品在不同关键词下的排名情况,分析竞品优势
  3. 市场调研:批量采集特定品类商品的排名数据,进行市场趋势分析
  4. 关键词研究:分析不同关键词的商品竞争程度和排名难度
  5. 销售策略优化:根据排名数据调整商品定价、标题优化和广告投放策略
  6. 多站点数据对比:支持不同亚马逊站点(如美国、欧洲、日本等)的排名数据采集与对比
  7. 批量数据报告生成:自动生成Excel格式的排名报告,便于数据存档和进一步分析

五、常见问题与建议

常见问题

  1. 文件不存在错误

    • 问题:提示"文件不存在,请选择正确的关键词文件"
    • 解决:确保选择的Excel关键词文件存在且路径正确,文件格式为.xlsx
  2. 亚马逊站点URL错误

    • 问题:提示"亚马逊站点有误,请检查亚马逊站点网址"
    • 解决:确保输入的URL格式正确,如"https://www.amazon.com/"或对应国家站点
  3. 采集页数参数错误

    • 问题:提示"采集业务有误,请检查采集页数"
      – 解决:确保采集页数为纯数字,如"5"表示采集5页数据
  4. Excel读取失败

    • 问题:无法正确读取关键词Excel文件
    • 解决:确保Excel文件未被占用,关键词填写在A列,且Sheet名称不为"排名信息"
  5. 网页加载超时

    • 问题:亚马逊网页加载缓慢或超时
    • 解决:检查网络连接,考虑增加延迟设置或分时段采集

建议

  1. Excel文件规范:建议将关键词单独放在一个Excel文件中,每个Sheet可对应不同品类的关键词
  2. 关键词管理:避免一次性采集过多关键词,建议分批进行以提高稳定性
  3. 网络环境:在网络稳定的环境下运行,避免因网络波动导致采集中断
  4. 反爬策略:适当调整采集间隔,避免过快请求导致IP被限制
  5. 结果备份:定期备份采集结果,防止数据丢失
  6. 版本更新:关注工具版本更新,及时获取新功能和bug修复

六、源码下载

  1. 应用市场:可通过实在智能RPA应用市场搜索"亚马逊-商品排名获取"下载安装
  2. 私聊

七、后续扩展方向

  1. 多线程采集:引入多线程机制,提高多个关键词并行采集效率
  2. 定时任务功能:增加定时自动采集功能,支持按日/周/月定期执行
  3. 数据可视化:添加排名趋势图表展示功能,直观呈现排名变化
  4. 多平台支持:扩展支持其他电商平台(如eBay、速卖通等)的排名采集
  5. 云同步功能:实现采集结果的云端存储和多设备同步
  6. 异常自动重试:优化异常处理机制,实现关键步骤的自动重试
  7. 代理池集成:添加代理IP池功能,降低IP被封锁的风险
  8. API接口开发:提供API接口,支持与其他系统集成
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

RPA+AI十二工作室

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值