影刀RPA实操指南_多关键词搜索与数据汇总采集
2026/6/10 0:39:20 网站建设 项目流程

影刀RPA实操指南:多关键词搜索与数据汇总采集

单个关键词采集很简单:搜索→遍历→写入Excel。

但真实需求往往是:“帮我把这 50 个竞品关键词的搜索结果全采下来,汇总到一个表里。”

这时候就不是单关键词的问题了,是多关键词批量搜索、去重汇总、带标签分类。

这篇文章讲清楚这个场景的完整写法。


一、数据结构设计——在 Excel 里定义关键词表

不要直接在流程里写死关键词。把关键词放在 Excel 里,方便修改和复用。

关键词类目目标采集数
连衣裙女装100
T恤女装80
休闲裤男装60
蓝牙耳机数码50
读取Excel("D:\关键词表.xlsx")->关键词表 获取表格行数(关键词表)->关键词总数[video(video-mLX7wJSW-1781009239032)(type-csdn)(url-https://live.csdn.net/v/embed/525010)(image-https://v-blog.csdnimg.cn/asset/f4faa587144cb7070f19e8b36813806b/cover/Cover0.jpg)(title-店群矩阵自动化突破运营极限!)]

好处:

  • 加关键词不用改流程,改 Excel 就行
  • 可以按类目统计采集量
  • 支持多人协作——运营填关键词,技术不用动流程

二、核心流程:外层循环关键词,内层循环翻页

# === 结构:两层循环 ===# 外层:遍历每个关键词# 内层:对当前关键词的搜索结果翻页采集读取Excel("D:\关键词表.xlsx")->关键词表 获取表格行数(关键词表)->关键词总数# 初始化结果表创建Excel->结果表 写入行数据(结果表,["关键词","商品名称","价格","销量","店铺名","类目","采集时间"])遍历行索引(1,关键词总数):当前关键词=获取单元格值(关键词表,当前行,1)当前类目=获取单元格值(关键词表,当前行,2)目标数量=获取单元格值(关键词表,当前行,3)输出日志(f"==== 开始采集关键词:{当前关键词}({当前行}/{关键词总数}) ====")# 进入搜索页打开网页("https://search.taobao.com/")等待元素出现("搜索框",5)输入文本("搜索框",当前关键词)点击元素("搜索按钮")等待元素出现("商品列表区域",5)已采集=0# 内层循环:翻页条件循环(已采集<目标数量):获取相似元素列表("商品卡片")->当前页商品 遍历列表(当前页商品,商品元素):如果 已采集>=目标数量:跳出循环 商品名=获取元素文本(商品元素//名称区域)价格=获取元素文本(商品元素//价格区域)销量=获取元素文本(商品元素//销量区域)店铺=获取元素文本(商品元素//店铺区域)写入行数据(结果表,[当前关键词,商品名,价格,销量,店铺,当前类目,当前时间])已采集=已采集+1# 判断下一页判断元素是否存在("下一页按钮")->有下一页 如果 有下一页 且 已采集<目标数量:点击元素("下一页按钮")等待元素出现("商品列表区域",3)否则:输出日志(f"关键词{当前关键词}采集完成,实际采集{已采集}条")跳出循环 输出日志(f"关键词{当前关键词}完成,累计:{结果表总行数}条")# 保存结果导出表格(结果表,f"D:\多关键词汇总_{日期}.xlsx")输出日志(f"全部完成!总计采集{结果表总行数}条数据")

三、关键细节处理

3.1 避免重复采集

同一条商品可能出现在多个关键词的搜索结果里。如果要做去重:

# 方案1:采集完成后用 Pandas 去重Python代码:importpandasaspd df=pd.read_excel(r"D:\多关键词汇总.xlsx")before=len(df)df.drop_duplicates(subset=["商品名称"],keep="first",inplace=True)![在这里插入图片描述](https://i-blog.csdnimg.cn/direct/b08772da51e24e1fb4fd4d98545794ba.png#pic_center)after=len(df)df.to_excel(r"D:\多关键词汇总_去重.xlsx",index=False)print(f"去重前:{before}, 去重后:{after}, 去重率:{(before-after)/before*100:.1f}%")

3.2 断点续采

采到第 15 个关键词时断网了,不希望从头再来:

# 在关键词表里加一列"采集状态"# 每次采集完一个关键词就标记"已完成"遍历行索引(1,关键词总数):状态=获取单元格值(关键词表,当前行,4)# 第4列是状态如果 状态=="已完成":输出日志(f"跳过已采集关键词:{当前关键词}")继续下一次循环# ... 正常采集逻辑 ...# 采集完成后标记状态写入单元格(关键词表,当前行,4,"已完成")保存Excel(关键词表,"D:\关键词表.xlsx")# 每完成一条就保存一次

3.3 每个关键词之间的间隔

连续搜索太频繁容易触发风控:

# 每个关键词之间随机等待Python代码:importtime,random wait=random.uniform(3,8)# 3~8秒随机print(f"下一个关键词将在{wait:.1f}秒后开始...")time.sleep(wait)

四、多平台汇总:同时采集拼多多 + 淘宝

关键词相同,但要跑两个平台。用子流程模块化:

# 主流程:遍历关键词,每个关键词跑两个平台遍历行索引(1,关键词总数):关键词=获取单元格值(关键词表,当前行,1)# 调淘宝子流程调用子流程("淘宝搜索采集",关键词)[video(video-QwjlyZ3f-1781009245575)(type-csdn)(url-https://live.csdn.net/v/embed/524992)(image-https://v-blog.csdnimg.cn/asset/b59aed2f01d4fe8583467562aaf4dcfd/cover/Cover0.jpg)(title-temu店群自动化报活动案例)]# 调拼多多子流程调用子流程("拼多多搜索采集",关键词)

子流程里只负责"在指定平台搜索指定关键词并返回数据",不关心是第几个关键词、一共要搜多少个。

这种模块化设计让主流程很干净,出问题也好定位。


五、采集过程中的实时监控

大量采集时,你不可能一直盯着屏幕。用日志 + 飞书通知保持可控感:

# 每完成5个关键词,发一次进度通知Python代码:total=变量_关键词总数 current=变量_当前行ifcurrent%5==0orcurrent==total:progress=current/total*100msg=f"采集进度:{current}/{total}({progress:.0f}%)"# 发飞书消息发送飞书消息(webhook_url,msg)

六、常见问题速查

问题原因解决
第一个关键词正常,第二个搜不到页面搜索框没清空搜索前先清空输入框或刷新页面
数据量远超目标数每页商品数大于预期在"已采集>=目标数量"时立即break
中间某个关键词搜不到结果冷门关键词无结果获取商品列表长度,为0则跳过
去重后数据太少多个关键词搜到了同样商品正常,保留去重逻辑即可
跑到一半浏览器卡死内存累积每10个关键词关闭一次浏览器重新打开

作者:林焱

本文为《影刀RPA学习手册》系列文章之一,内容源于实操经验的整理与分享。

需要专业的网站建设服务?

联系我们获取免费的网站建设咨询和方案报价,让我们帮助您实现业务目标

立即咨询