影刀RPA 二维码处理:批量生成与自动识别

发布时间:2026/7/11 7:16:10
影刀RPA 二维码处理:批量生成与自动识别 影刀RPA 二维码处理批量生成与自动识别作者林焱一、什么情况用影刀处理二维码二维码在企业场景中用得越来越多——物流面单上的运单号是二维码活动签到码是二维码设备铭牌上的序列号也是二维码。需要批量处理时的痛点生成几百个二维码逐个操作慢扫码时手动举手机对着屏幕扫效率低。影刀RPA可以批量生成二维码从Excel中读取数据自动生成二维码图片并保存自动解析二维码从截图或文件中批量识别二维码内容网页扫码模拟在自动化流程中模拟扫码登录二、实战一批量生成物流面单二维码店群矩阵自动化突破运营极限场景仓库发货时每张面单上要印一个包含运单号的二维码方便快递员扫码确认。每天几百单用在线工具逐个生成太慢。importqrcodefromPILimportImage,ImageDraw,ImageFont# 读取运单号清单orderspd.read_excel(C:\\仓库\\今日发货清单.xlsx)for_,orderinorders.iterrows():运单号order[运单号]# 生成二维码qrqrcode.QRCode(version2,error_correctionqrcode.constants.ERROR_CORRECT_M,box_size10,border2,)qr.add_data(fTN:{运单号})qr.make(fitTrue)qr_imgqr.make_image(fill_colorblack,back_colorwhite)# 在二维码下方添加运单号文字widthqr_img.width img_with_textImage.new(RGB,(width,width40),white)img_with_text.paste(qr_img,(0,0))drawImageDraw.Draw(img_with_text)draw.text((10,width10),f运单号{运单号},fillblack)# 保存img_with_text.save(fC:\\仓库\\面单二维码\\{运单号}.png)print(f生成完成共{len(orders)}个二维码)影刀整合【读取Excel】输出变量发货清单 【Python代码块】执行上述生成代码 【打开照片查看器】确认生成结果 【将图片文件夹打包为ZIP】 【发送邮件到仓库负责人】三、实战二批量识别二维码内容场景活动签到时收到的几千张包含二维码的截图需要提取二维码中的参会人信息。importcv2frompyzbar.pyzbarimportdecodedefdecode_qr_from_image(image_path):从一张图片中解码所有二维码imgcv2.imread(image_path)# 转为灰度图提高识别率graycv2.cvtColor(img,cv2.COLOR_BGR2GRAY)# 解码decoded_objectsdecode(gray)results[]forobjindecoded_objects:results.append({数据:obj.data.decode(utf-8),类型:obj.type,# QRCODE位置:obj.polygon})returnresults ![在这里插入图片描述](https://i-blog.csdnimg.cn/direct/b22b61c60f074fef9cdc76492c54e3ec.png#pic_center)# 批量处理importos 签到结果[]二维码图片文件夹C:\\签到二维码截图\\forfilenameinos.listdir(二维码图片文件夹):iffilename.endswith((.png,.jpg,.jpeg)):pathos.path.join(二维码图片文件夹,filename)resultsdecode_qr_from_image(path)forrinresults:签到结果.append({文件名:filename,参会人信息:r[数据],识别时间:datetime.now().strftime(%H:%M:%S)})pd.DataFrame(签到结果).to_excel(签到统计.xlsx,indexFalse)影刀配合【读取文件夹】路径C:\签到二维码截图\ 文件类型*.png *.jpg 【Python代码块】执行识别 【导出Excel】文件签到统计.xlsx 【发送钉钉消息】负责人今日签到统计已完成四、实战三Web自动化中的扫码登录绕过网页版微信、钉钉等需要扫码登录这对自动化流程来说是个阻断点。方案一扫码后缓存Session推荐# 仅首次需要手动扫码yingdao.open_url(https://wx.qq.com)yingdao.wait_for_element(#qrcode)# 提示用户扫码yingdao.show_notification(请扫码登录微信网页版限时60秒)# 等待扫码完成检测页面元素变化foriinrange(120):ifyingdao.element_exists(#chat-list):print(扫码成功)breaktime.sleep(0.5)else:[video(video-KJsgJ2DW-1783725110081)(type-csdn)(url-https://live.csdn.net/v/embed/524992)(image-https://v-blog.csdnimg.cn/asset/b59aed2f01d4fe8583467562aaf4dcfd/cover/Cover0.jpg)(title-temu店群自动化报活动案例)]raiseException(扫码超时)# 导出Cookie/Sessioncookiesyingdao.get_cookies()withopen(cookies.json,w)asf:json.dump(cookies,f)# 后续运行时直接注入Cookieyingdao.open_url(https://wx.qq.com)yingdao.inject_cookies(json.load(open(cookies.json)))yingdao.refresh()方案二用已登录的浏览器Profile【打开浏览器】指定用户数据目录C:\browser_profiles\wechat_automation # 该目录下存有之前扫码登录的状态 【打开网页】URLhttps://wx.qq.com ![在这里插入图片描述](https://i-blog.csdnimg.cn/direct/c60b915faf804d71a2ab3640ad6a5ae7.png#pic_center) # 自动恢复已登录状态五、踩坑记录坑1二维码图片太小导致识别失败pyzbar对分辨率敏感的建议原图200×200像素以上。如果来源图片太小先用cv2放大imgcv2.resize(img,None,fx3,fy3,interpolationcv2.INTER_CUBIC)坑2二维码周边需要留白生成二维码时如果box_size太小或图片边界太紧扫码枪可能读不了。保持border≥2图片四边留至少10像素白边。坑3扫码登录的Session时效不定微信网页版Session可能几小时过期钉钉可能几天。方案是在流程中加入异常处理——当检测到又被要求扫码时发通知让用户重新扫码授权。坑4pyzbar需要安装Visual C运行时Windows上安装pyzbar前需要先安装VC运行库。如果打包给别人用要么用纯Python库qrcode只生成不识别要么用在线API。适用人群仓库管理员、活动运营、物流跟单员难度⭐⭐生成二维码简单批量识别稍难