影刀RPA新手教程:法律行业自动化完全指南——合同审查、案件信息录入与法院文书采集

📅 2026/7/1 15:45:22
影刀RPA新手教程:法律行业自动化完全指南——合同审查、案件信息录入与法院文书采集
影刀RPA新手教程法律行业自动化完全指南——合同审查、案件信息录入与法院文书采集我毕业后进了律所做实习律师助理每天打开电脑就是打开法院公告网、裁判文书网、律所内部案件管理系统复制粘贴、登录、下载、整理——一套流程做下来下午三点才终于开始做真正的工作。学了影刀RPA之后我用一个下午写完了一个法院判决书采集流程它替我干完了之前三天的工作量。这篇文章就从零开始用在律所的真实场景带你学影刀RPA的全部核心知识。一、认识影刀与安装影刀RPA是一个能在电脑上模拟人工操作的自动化软件它不需要写代码也能运行但当你愿意写一点XPath或Python时它的能力会指数级增长。到影刀官网下载社区版安装过程一路下一步即可。装完后记得在扩展商店里装上影刀浏览器插件——律所很多内部系统都是B/S架构的网页自动化全靠这个插件。我当时踩过的坑第一次装完怎么都捕获不到浏览器元素排查了一下午才发现是因为浏览器插件没启用。打开浏览器的扩展管理页把影刀插件开关打开就行。二、元素定位四合一XPath CSS 正则律所场景最常见的就是表格——案件列表、当事人信息、开庭公告全是表格数据。要自动化操作就得精准定位每个元素。XPath六种写法// 1. 按标签定位 //table//tr // 2. 按属性定位 //input[namecaseNumber] // 3. 按文本定位 //span[contains(text(),判决书)] // 4. 按层级定位 //div[classcase-list]/div[2]/span // 5. 按位置索引 (//table//tr)[3] // 6. 按兄弟关系 //td[text()原告]/following-sibling::td[1]CSS选择器八种语法/* 按ID */#caseTable/* 按Class */.case-item/* 按属性 */input[namepartyName]/* 层级选择 */.case-list div.case-item/* 伪类选择 */tr:nth-child(3)/* 属性包含 */div[class*judge]/* 属性开头 */a[href^/case/]/* 属性结尾 */img[src$.pdf]XPath适合处理复杂层级关系和文本匹配CSS语法更简洁但灵活性稍差。对于裁判文书网这种结构复杂的网站我一般用XPath律所内部管理系统结构规整的就用CSS。正则表达式三场景importre# 提取案号case_numre.search(r\d{4}\w字第\d号,text).group()# 提取金额amountre.findall(r\d\.?\d*元,text)# 替换敏感信息desensitizedre.sub(r\d{18},******,id_card)我当时在提取案号时栽过一次有的法院用括号是英文半角有的是中文全角正则写了半天提取不出来后来加了个[(]才搞定。三、变量与数据类型律所流程里最常用这几种数据拼多多店群自动化上架方案# 字符串——案号、当事人名称case_number2024京0105民初12345号# 列表——批量案件case_list[]forrowintable_rows:case_list.append(row.text)# 字典——案件详情case_info{案号:case_number,原告:张三,被告:某公司,标的额:500000}# JSON——API返回的裁判文书数据importjson resultjson.loads(response.text)case_titleresult[data][title]用字典存案件信息时有个坑如果键不存在会直接报错。我当时写了一个批量取裁判文书详情的流程某条数据里没有审判长字段流程直接挂了。后来学乖了全用dict.get(审判长, 未记录)的方式来读取。四、流程控制# For次数循环——已知总页数时翻页forpageinrange(1,21):# 填写页码输入框page_inputweb.find(input.page-input)page_input.clear()page_input.send_keys(str(page))# 相似元素循环——遍历搜索结果列表casesweb.find_all(div.search-result-item)forcaseincases:titlecase.find(h3.title).text courtcase.find(span.court).text# While条件循环——翻到没有下一页按钮whileweb.find(a.next-page).is_enabled():# 点击下一页web.find(a.next-page).click()time.sleep(2)# If条件判断ifweb.find(div.no-result).exists():print(暂无搜索结果)else:# 正常处理pass五、网页自动化律所打交道最多的就是裁判文书网和法院公告网这些网站的特点是——慢、结构复杂、经常弹窗。等待策略三种我最常用等待元素出现设置超时15秒。千万别用固定等待time.sleep(5)网络一卡5秒不够用网络快了又浪费时间。弹窗处理五步标准流程检测弹窗是否出现判断弹窗类型登录弹窗/验证码弹窗/公告弹窗关闭弹窗或填写内容确认弹窗已关闭继续主流程法院网站有一个很隐蔽的问题有些网站操作后会打开新标签页。这个在影刀里要用获取已打开的网页对象指令获取新标签页对象操作完再关闭它这样原网页上的循环才能继续。翻页时还有一个技巧你不知道搜索结果总共有多少页可以用下一页按钮的disabled属性来判断next_btnweb.find(a.next-page)ifdisabledinnext_btn.get_attribute(class):break# 已经是最后一页了六、数据处理# Excel读写——案件汇总表importopenpyxl wbopenpyxl.load_workbook(案件汇总.xlsx)wswb.activeforrowinrange(2,ws.max_row1):case_numberws.cell(row,1).value wb.save(案件汇总_已更新.xlsx)# 文本清洗——裁判文书内容提取textraw_text.replace(\n,).replace( ,)textre.sub(r[\x00-\x08\x0b\x0c\x0e-\x1f],,text)# 数据库连接importpymysql connpymysql.connect(hostlocalhost,userroot,passwordxxx,databaselaw_firm)cursorconn.cursor()cursor.execute(INSERT INTO cases (case_no, title) VALUES (%s, %s),(case_no,title))conn.commit()cursor.close()conn.close()数据库操作有五个我遇到过的报错连接超时检查防火墙、字符集不匹配连接串加charsetutf8mb4、字段长度不够、主键冲突、事务未提交。七、鼠标键盘图像自动化律所OA系统有些是老旧的C/S架构桌面软件元素捕获不到怎么办三种备选方案深度模式捕获——大多数桌面软件都支持图像识别——截一个小图做锚点用image.click()点击快捷键——如CtrlS保存文档# 图像识别点击image.click(保存按钮截图.png)# 偏移点击——图片中心偏右50像素image.click(保存按钮截图.png,offset_x50,offset_y0)# 模拟键盘快捷键keyboard.send_keys(^s)# CtrlS我当时在这里踩过一个坑用图像识别点击一个按钮换了一台分辨率不同的电脑流程全挂了。解决办法是把图像匹配的相似度从默认90%降到80%。八、进阶技能HTTP请求直接调APIimportrequests headers{User-Agent:Mozilla/5.0}resprequests.get(https://api.example.com/case/search,params{keyword:合同纠纷},headersheaders)dataresp.json()用API比网页自动化快太多但不是所有系统都开放API。OCR文字识别法院扫描件PDF需要提取文字时用OCR# 影刀内置OCR指令textocr.recognize(扫描件.png)Python协同# 自定义函数模块defextract_case_number(text):从文本中提取案号importre patternr\d{4}\w字第\d号matchre.search(pattern,text)returnmatch.group()ifmatchelse把通用函数抽成子流程多个流程都能调用。九、平台实战裁判文书网采集真实案例——每天自动搜索指定类型案件下载判决书PDF提取关键信息案由、法院、判决结果、法条引用写入Excel表格。这个流程在律所跑了一年多从没出过大问题。中国庭审公开网TEMU店群如何管理运营采集开庭公告提取开庭时间、法庭编号、审判长信息同步到飞书日历提醒律师出庭。采集的时候有一个细节某些平台的搜索结果是动态加载的滚动到底部才加载更多。影刀里用相似元素循环时每次循环前先判断当前已加载的元素数量如果和上次一样说明加载完了再往下翻一页。十、系统联动# 飞书消息通知——新案件分配到人importrequests webhook_urlhttps://open.feishu.cn/open-apis/bot/v2/hook/xxxdata{msg_type:text,content:{text:f新案件分配{case_title}请查收}}requests.post(webhook_url,jsondata)# 飞书多维表格写入# 批量导入案件信息到飞书多维表格base_records[]base_records.append({案号:case_no,当事人:party,案件状态:status})lark_base.batch_create(tblXXX,base_records)我一般给每个律师配一个案件分配通知飞书机器人统一推送比微信群来去高效多了。十一、工程化规范子流程封装把登录裁判文书网封装成子流程参数传账号密码所有需要这个网站数据的流程都调用它。调试技巧打断点一步步走观察变量面板里每个步骤后的值变化。我排查过一个奇怪的Bug——翻页到第8页就报元素未找到打断点发现是第8页的搜索结果数量和其他页不一样表格结构变了。命名规范变量名用英文或拼音清楚表达含义case_number、judgment_date、court_name。别用a、b、temp这种名字过一个月自己都看不懂。版本选择个人学用社区版免费够用律所内部用创业版或企业版支持多人协作和调度中心定时运行。十二、速查表与常见报错报错信息原因解决未找到指定ID的元素页面未加载完成或元素XPath写错加等待或检查XPathArray to String把列表赋给了字符串变量用list[0]取第一个元素网页对象已失效页面刷新后原对象失效重新获取网页对象弹窗拦截点击出现未预期的弹窗加弹窗检测和关闭逻辑XPath语法报错引号嵌套问题外层双引号内层单引号我最初用影刀时就卡在未找到指定ID的元素这个报错上反复检查XPath都没问题最后发现是页面用了iframe需要先切换到iframe里才能捕获到里面的元素。学习更多影刀RPA实操案例可以访问 home.linyan.cloud 。#影刀RPA #RPA教程 #法律行业自动化 #合同审查 #裁判文书采集作者林焱