影刀RPA店群自动化实战:商品详情页违规词自动检测与批量替换系统设计
2026/6/9 2:13:26 网站建设 项目流程

影刀RPA店群自动化实战:商品详情页违规词自动检测与批量替换系统设计

店群商品合规,不止是标题。
详情页里的描述词、图片上的文字、甚至属性值,都可能触发平台违规。一个“纯棉”用在不含棉的面料上,是虚假宣传;一个“抗菌”用在没有检测报告的普通袜子上,是夸大功效。更别提广告法禁用词“最”、“第一”、“顶级”。
人工审核详情页,比看标题难十倍。一个商品详情页可能有几百上千字,加上几张带文字的图片,运营根本看不过来。我们以前吃过亏:一款“磁疗护膝”详情页写了“治疗关节疼痛”,被平台定性为虚假宣传,店铺扣分限流半个月。

店群矩阵自动化突破运营极限!


后来我们用影刀RPA和Python,搭建了一套商品详情页违规词自动检测与批量替换系统,自动抓取所有在售商品的详情页(文本+图片OCR),按规则库扫描违规词,并批量替换或下架。同时,系统还能与供应商稿件联动,在商品上架前预检,从源头杜绝违规。
这篇文章不讲订单也不讲广告。专门聊聊店群详情页合规自动化的工程实践:如何大规模抓取详情页文本,如何集成图片OCR识别文字,如何设计高效的违规词匹配算法,以及如何实现批量替换和变更回滚。

适用场景:商品数量多、详情页内容复杂、对合规要求高的店群项目。

技术栈:影刀RPA + Python + OCR(Tesseract/云服务)+ 布隆过滤器 + 配置中心。


temu店群自动化报活动案例

一、详情页合规检测的三大痛点

先看一个真实案例。
某日用品店群,商品详情页中大量使用“抑菌”“除螨”等词汇,但产品并无相关检测报告。平台稽查后,一次性下架了30多个商品,店铺流量跌了60%。
痛点一:详情页文本量大,人工无法逐页审核
每个商品的详情页少则几百字,多则上千字。几百个商品就是几十万字,运营根本不可能逐字阅读,只能抽查,漏网之鱼很多。
痛点二:违规词藏在图片中
详情页中的图片常常包含促销文字、功效说明。OCR文字识别需要额外处理,人工更难发现。
痛点三:供应商提供的描述模板本身含违规词
供应商发来的商品资料,本身就可能含有“全网最低”“治疗”等词。运营直接复制上传,违规从源头上就埋下了。
自动化的目标:系统每天自动扫描所有在售商品的详情页(文本+图片),匹配违规词库,高亮违规位置,自动替换或下架商品;支持批量修改和版本回滚,并提供上架前的预检接口。

二、整体架构

在这里插入图片描述

系统分为六个模块。
详情页抓取模块:影刀RPA定时登录店铺后台,抓取每个商品的详情页HTML或纯文本描述,以及详情页所有图片的URL。推送到消息队列。
OCR文字识别模块:对详情页中的图片,调用OCR服务提取文字,合并到该商品的文本描述中。
违规词库管理模块:存储平台禁用词、广告法禁用词、行业敏感词,支持分类(高危、中危、低危),支持正则表达式和模糊匹配。
匹配引擎模块:对商品描述文本进行高效多模匹配(AC自动机/布隆过滤器),定位违规词及其位置。
自动修复模块:根据预设策略,自动替换违规词(如将“最优惠”替换为“优惠”),或自动下架商品,并记录操作日志。
预检接口模块:供应商上传商品资料时,自动调用检测服务,标记出违规词,要求修改后才允许上架。
下面重点讲解详情页抓取、OCR识别和匹配引擎。

三、详情页抓取与文本提取

影刀RPA脚本登录店铺后台,进入“商品管理”,遍历所有在售商品,抓取“详情描述”的内容。
对于富文本编辑器(HTML),脚本需要提取纯文本,去除标签。可以使用Python的BeautifulSoup或正则。

# detail_crawler.pyclassDetailCrawler:def__init__(self,shop_id):self.shop_id=shop_iddeffetch_all_products(self):products=[]# 模拟分页抓取page=1whileTrue:html=rpa.get_product_list_page(page)product_ids=extract_ids(html)ifnotproduct_ids:breakforpidinproduct_ids:detail=self.fetch_detail(pid)products.append({"product_id":pid,"detail_text":detail['text'],"image_urls":detail['images']})page+=1returnproductsdeffetch_detail(self,product_id):driver=rpa.get_driver()driver.get(f"https://shop.com/product/edit?id={product_id}")# 切换到详情页编辑器,获取HTMLeditor_html=driver.execute_script("return document.getElementById('detailEditor').innerHTML")text=BeautifulSoup(editor_html,'html.parser').get_text()# 提取图片URL(img标签的src)images=[img['src']forimginBeautifulSoup(editor_html,'html.parser').find_all('img')]return{"text":text,"images":images}``` 抓取到的文本和图片URL推送到Kafka。---## 四、图片OCR文字识别对于每张详情页图片,调用OCR服务(Tesseract本地或云OCR)。为了提高效率,只处理图片尺寸较大且可能包含文字的图片(通过图像熵判断)。 ```python# ocr_engine.pyimportpytesseractfromPILimportImageimportrequestsfromioimportBytesIOdefocr_image(url):response=requests.get(url,timeout=5)img=Image.open(BytesIO(response.content))# 如果图片尺寸过小,跳过(可能只是装饰图)ifimg.width<200orimg.height<200:return""text=pytesseract.image_to_string(img,lang='chi_sim+eng')returntext.strip()``` 识别出的文字合并到该商品的`detail_text`字段中,作为违规检测的输入。 由于OCR有成本和延迟,我们只对一周内未检测过的图片执行OCR,结果缓存30天。---## 五、违规词匹配引擎违规词库包含几千条词汇(包括变体)。为了提高匹配效率,我们使用AC自动机(Aho-Corasick)实现多模匹配。 ```python# keyword_matcher.pyimportahocorasickclassKeywordMatcher:def__init__(self,keyword_list):self.automaton=ahocorasick.Automaton()foridx,kwinenumerate(keyword_list):self.automaton.add_word(kw,(idx,kw))self.automaton.make_automaton()defmatch(self,text):matches=[]forend_idx,(idx,kw)inself.automaton.iter(text):start_idx=end_idx-len(kw)+1matches.append({"keyword":kw,"position":(start_idx,end_idx),"context":text[max(0,start_idx-20):min(len(text),end_idx+20)]})returnmatches ``` 匹配结果按违规词分类(高危/中危/低危)。例如“治疗”“抗癌”为高危,“全网最低”为中危,“优质”为低危(可能不违规,但建议避免)。 匹配引擎支持正则表达式,例如检测“纯棉”但必须排除“非纯棉”“不含棉”等否定语境(通过上下文负向匹配)。---## 六、自动修复策略根据违规严重程度,执行不同动作。-**高危**:自动下架商品,并发送告警通知运营。下架时保留快照,便于后续修改。--**中危**:自动替换违规词(例如将“最优惠”替换为“优惠”),同时记录修改日志。如果替换后内容变空或语义不通,则转人工。--**低危**:仅标记,生成报告供运营批量确认。 替换操作通过平台API或影刀RPA修改商品详情页实现。影刀脚本定位到编辑器区域,使用JS替换文本。 ```python# auto_fixer.pyclassAutoFixer:def__init__(self,shop_adapter):self.shop=shop_adapterdefreplace_keyword(self,product_id,keyword,replacement):# 获取当前详情HTMLcurrent=get_product_detail(product_id)new_html=current.replace(keyword,replacement)# 通过API或影刀更新self.shop.update_detail(product_id,new_html)log_action(product_id,"replace",keyword,replacement)``` 所有自动修改都记录版本历史,支持一键回滚(恢复到修改前的HTML)。---## 七、上架前的预检拦截为了从源头杜绝违规,我们在商品上架流程中增加一个“预检”步骤。 运营上传商品Excel或导入供应商稿件时,系统自动调用检测API,返回违规词汇列表和位置。运营必须确认或修改后,才能继续上架。 预检API响应示例: ```json{"has_violation":true,"violations":[{"field":"detail","keyword":"最优惠","severity":"medium","suggestion":"改为“优惠”"}]}``` 影刀RPA上架脚本在填写详情页前,先调用预检接口。如果存在高危违规,脚本直接中止并提示运营;如果是中危,脚本可以自动应用建议的替换,或等待运营确认。 这样可以有效防止供应商资料中的违规词流入线上商品。---## 八、定期巡检与增量扫描除了上架前预检,系统每天凌晨执行全量巡检,扫描所有在售商品的详情页(包括新修改的内容)。对于历史违规,生成报告并自动修复。 为了避免重复扫描无变化的商品,我们使用内容哈希:将详情页文本和图片URL列表计算MD5,如果与上次扫描一致,则跳过。 对于新增或修改过的商品,优先扫描。---## 九、真实踩坑与经验**1:OCR识别准确率低,漏掉违规词**图片中的艺术字体、背景干扰导致OCR识别不出。我们使用云OCR(如百度OCR)提高准确率,同时对于置信度低的文字,标记为“需人工复核”。**2:替换操作破坏了HTML结构**直接字符串替换可能将标签内的属性也替换掉(例如`<img alt="最优惠">`中的“最优惠”也被替换)。我们使用BeautifulSoup遍历文本节点,只替换文本内容,不替换标签属性。**3:违规词误判(“最新款”中的“最”被当违规)**广告法中的“最”需要结合语境。我们维护了一个“白名单”短语,如“最新款”“最近”不触发违规。同时支持正则表达式写排除规则。**4:大促期间批量自动修改导致错误蔓延**一次替换规则写错,将“优质”批量替换成“优”,导致大量商品描述出现语病。解决:自动修复前先在小范围测试(1%商品),观察24小时无问题后再全量。并保留完整回滚能力。---## 十、效果数据与收益系统上线半年后:-详情页合规检测覆盖率:100%(所有在售商品)--日均检测商品数:5000+--自动修复率:85%(中危违规自动替换,高危人工确认)--因详情页违规导致的平台处罚:从每月2-3次降到0--运营合规审核时间:从每周10小时降到1小时 一个案例:某家居店群,供应商提供的详情页大量使用“抗菌”“防螨”词汇。系统在上架预检时拦截,运营退回供应商修改,避免了批量上架后的违规风险。---## 十一、总结:让合规成为自动化的一部分店群详情页的合规管理,不能靠“人肉巡检”。自动化检测和修复系统,让违规词无处藏身,从上架前到在售中全程防护。 建议实施路径:1.先建立违规词库(从平台规则和广告法中整理)2.2.实现商品详情页文本的自动抓取和匹配(先不处理图片)3.3.增加简单替换功能(如替换“最”为“很”)4.4.集成OCR处理图片文字5.5.在上架流程中加入预检接口 合规不是阻碍效率,而是保护长期利益。用自动化来守护合规底线,才能让店群走得远、走得稳。 记住:**每一个违规词,都可能是平台的罚单。让机器帮你审稿,比你自己瞎猜强一百倍。**---作者:林焱

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

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

立即咨询