影刀RPA 从Excel读取配置驱动浏览器操作:一个模板搞定批量查询

📅 2026/7/11 9:48:39 👁️ 阅读次数 📝 编程学习
影刀RPA 从Excel读取配置驱动浏览器操作:一个模板搞定批量查询

影刀RPA 从Excel读取配置驱动浏览器操作:一个模板搞定批量查询

很多重复性工作的模式是:有一份Excel名单,需要逐条去网站上查询、采集结果、汇总。比如查物流、查企业信息、查商品价格。

这篇文章给一个通用模板——Excel里写好要查什么,流程自动逐条去网页上查,结果写回Excel。


场景模型

输入Excel: | 查询关键词 | 查询类型 | |-----------|----------| | 顺丰快递 | 物流单号查询 | | SF12345678 | 物流单号查询 | | 华为技术有限公司 | 企业信息查询 | 输出Excel: | 查询关键词 | 查询结果 | 查询时间 | 状态 | |-----------|---------|---------|------| | 顺丰快递 | 在途,预计7月3日到达 | 2026-07-01 09:05 | 成功 | | SF12345678 | 未查到 | 2026-07-01 09:06 | 失败 |

通用模板流程

主流程 batch_query.flow: 1. 【读取Excel】→ 读取查询列表 → query_list (字段:查询关键词、查询类型、其他参数...) 2. 【打开网页】→ 目标查询页面 3. 【登录】(如果需要) 4. results = [] FOR EACH query IN query_list: TRY: 【填写】→ 搜索框,输入 query['查询关键词'] 【点击】→ 搜索按钮 【等待元素】→ 等待结果出现 【获取元素文本】→ 提取结果内容 result = { '关键词': query['查询关键词'], '结果': 提取的文本, '时间': 当前时间, '状态': '成功' [video(video-EnsOjOXf-1783725635280)(type-csdn)(url-https://live.csdn.net/v/embed/525010)(image-https://v-blog.csdnimg.cn/asset/f4faa587144cb7070f19e8b36813806b/cover/Cover0.jpg)(title-店群矩阵自动化突破运营极限!)] } CATCH: result = { '关键词': query['查询关键词'], '结果': '查询失败', '时间': 当前时间, '状态': '失败' } results追加 result 【等待 2 秒】→ 查询间隔(防止反爬) END FOR 5. 【写入Excel】→ results → 输出文件 6. 【日志输出】→ f"查询完成:成功{成功数}条,失败{失败数}条"

查询失败的重试与跳过

max_retries=2FOR EACH query IN query_list:retry=0success=FalseWHILE retry<=max_retries AND NOT success:TRY:# 执行查询操作success=TrueCATCH:retry+=1【日志输出】f"查询 '{query['关键词']}' 失败,第{retry}次重试"【等待5秒】 IF NOT success:【日志输出】f"跳过:{query['关键词']}(重试{max_retries}次均失败)"CONTINUE# 跳过这条,继续下一条# 处理成功的结果END FOR

结果实时写入(防止中途崩溃)

如果查询量很大(几百上千条),不要等全部查完再一次性写入Excel。每查完10条就追加写入一次:

batch_size=10batch_results=[]FOR EACH query IN query_list:查询...batch_results.append(result)IFlen(batch_results)>=batch_size:【写入Excel】→ 追加模式 → batch_results batch_results=[]# 清空缓存【日志输出】f"进度:{已处理}/{总数量}"END FOR# 处理最后一批(不够batch_size的)IF batch_results:【写入Excel】→ batch_results

这样即使流程在处理到第800条时崩溃了,前790条的结果已经保存在Excel里了。


多页面查询模板(不同查询类型走不同操作)

如果不同查询类型需要在不同页面操作(查物流一个页面、查企业信息另一个页面):

1. 【读取Excel】→ 查询列表 2. 按"查询类型"分组: 物流查询组:['SF123', 'YT456', ...] 企业查询组:['华为', '腾讯', ...] 3. 处理物流查询: 【打开网页】→ 物流查询页面 FOR EACH 物流单号 IN 物流查询组: 查询... END FOR 【保存结果】 4. 处理企业查询: 【打开网页】→ 企业信息查询页面 FOR EACH 企业名 IN 企业查询组: 查询... END FOR 【保存结果】 5. 合并所有结果 → 写入最终Excel

实用优化技巧

1. 添加查询进度条(日志层面)。

[09:00:05] 开始批量查询,共200条 [09:00:10] 进度:10/200(5%) [09:00:15] 进度:20/200(10%) ... [09:15:00] 进度:200/200(100%),耗时14分55秒

2. 查询间隔控制。

短时间大量查询会被反爬。根据目标网站的敏感程度调整间隔:

temu店群自动化报活动案例

  • 内部系统:0.5-1秒
  • 普通公开网站:1-3秒
  • 反爬严格的网站:3-5秒+随机抖动
importrandom 【等待】→ random.uniform(2,4)# 2到4秒随机

3. 断点续查。

如果200条查到第150条时网络断了,从头查意味着前150条白查了。在Excel的"状态"列实时标记,重启时跳过已成功的:

FOR EACH query IN query_list: IF query['状态'] == '成功': CONTINUE # 跳过 查询...

总结:Excel驱动浏览器查询的模式适用面非常广。核心模板就三步——读Excel→循环查询→写结果。关键是在循环里加容错(单条失败不影响整体)和断点保存(防止中途崩溃白干)。


作者:林焱