☰
影刀RPA实操指南:法院裁判文书检索与批量下载
2026/10/1 19:50:13 网站建设 项目流程

影刀RPA实操指南:法院裁判文书检索与批量下载

做法律相关工作的人都体会过翻裁判文书的苦:一个案由检索出几千份文书,逐篇点开、逐篇下载、手动重命名,一个上午过去进度条还没走完三分之一的案子。我用影刀RPA做了裁判文书检索与批量下载流程,输入案由和法院条件后自动翻页、逐篇打开、批量保存文件到本地,全程不用人守着。

先把边界说清楚:法院类平台没有公开的RPA官方采集教程,这篇是通用网页自动化方案的推导落地,用到的全部是影刀RPA的标准指令,思路适用于各类检索加批量下载的站点。另外要提醒一句,文书数据仅用于自己正当的工作用途,控制访问频率,别给公共服务添负担。

我非技术出身,做这类流程两年多,检索加下载是所有网页自动化里最能锻炼完整功力的场景,因为它把定位、循环、等待、文件下载、异常处理全串起来了。

认识影刀RPA与安装:先把浏览器插件装对

官网下载影刀客户端,注册登录。装浏览器插件这步别跳:设置→浏览器插件→安装Chrome或Edge插件,装完重启浏览器。文书网站页面上有大量动态加载内容,插件没装好后面全是"元素捕获不到"的怪问题。

新建应用"文书检索下载",流程开头拖"打开网页"指令,浏览器类型选Google Chrome,网址填目标检索页,保存网页对象至变量 web_court。打开网页指令的等待网页加载完成参数设25秒,这类站点服务器响应偏慢,默认值经常不够。

社区版每天30分钟时长,批量下载任务建议放在夜里定时跑,时长不够可考虑创业版。

元素定位四合一:检索结果列表与文书链接的定位方案

检索结果页是典型的列表结构:每条结果带标题、法院、日期、案号。四个定位工具逐一派上用场。

元素捕获建立基准元素,XPath负责批量提取和跨字段关联:

# 捕获元素:结果列表中所有文书标题链接 //div[@class="result-list"]//a[contains(@class,'title')] # 模糊匹配:标题里包含"劳动合同"的文书条目(变量传案由关键词) //*[contains(text(),'$case_type$')] # 参照物定位:通过"发布日期"文本定位同一容器内的链接 //*[contains(@class,'date')]/preceding-sibling::a[1] # 层级定位:从案号定位整条结果卡片,再取标题 //div[text()='$case_no$']/ancestor::div[contains(@class,'item')]//a

CSS选择器和XPath并列使用的选型原则不变:div.result-list a.title这种单层结构CSS最快;凡是"通过文本找元素"“向上找父级”“跨字段关联"只能XPath。正则表达式在文书场景的高频用法是校验和提取案号格式,比如从标题里提取”(2025)京01民终xxxx号"这类模式,数据清洗时省很多事。

影像场景里文书页面可能有附件是图片格式,OCR文字识别偶尔派上用场,放在进阶部分讲。

变量与数据类型:检索条件与文书清单的组织

检索条件用字典存:键为 案由、法院、日期范围、文书类型,拼接成检索URL或逐个填入表单。文书清单用列表的列表存,每条包含 标题、案号、日期、文书链接、文件名 五列,最后统一写Excel做下载台账。

文件名怎么起是这个流程的设计重点。我第一版直接用网站默认文件名,下载几百份全是乱码式的编号,根本没法用。后来改成"案号+当事人关键词"拼接命名:用"合成一个文本"指令把案号和截取的标题前几个字拼起来作为文件名,再用Python把非法字符替换掉:

# 输入:case_no(案号)、title(文书标题)# 输出:file_name,合法的本地文件名importre base=f"{case_no}_{title[:12]}"# 案号+标题前12字file_name=re.sub(r'[\\/:*?"<>|]','_',base)# Windows非法字符替换为下划线file_name=file_name.strip()# 去两端空格,防止路径异常

JSON处理在走接口路线时会用到:响应JSON字符串转Python对象,提取文书ID和下载地址,再转文本传给下载指令。

流程控制:翻页循环与逐篇下载的骨架

主流程骨架分两段。第一段是检索与收集清单:ForEach列表循环遍历检索条件组合,循环相似元素(web)遍历当前页结果,用"提取文本"抓标题和案号存进清单列表。

第二段是逐篇下载:For循环遍历清单,每条执行"打开文书详情页→定位下载按钮→下载文件→关闭页面→写台账"。翻页用While条件循环加disabled判断://a[contains(@class,"next") and not(contains(@class,"disabled"))]可见就点下一页继续收集,不可见就结束。

每篇文书必须包Try-Catch:Catch里"输出日志"记录案号和报错,Finally关闭可能残留的详情页。批量任务几百次循环,中间任何一篇出问题都该跳过而不是停线,台账里把失败项标出来,跑完单独补一轮即可。

网页自动化:等待、弹窗与下载对话框三件事

等待策略:详情页内容异步加载必须等到位

点进文书详情后正文是异步渲染的,直接提取会抓到空。标准做法:点击后用"等待元素(web)"等正文容器出现,超时15秒,返回True才继续。下载按钮也同理,先等它出现再点。固定等待在文书站点上特别不可靠,服务器慢的时候固定5秒经常不够,动态等待是唯一正解。

弹窗处理的标准流程

文书站点常见两类弹窗:登录提醒弹窗和访问频率提示弹窗。处理套路是固定的五步:捕获弹窗的关闭按钮元素→流程关键节点前用IF 元素可见(web)判断弹窗是否存在→存在就点关闭→等待弹窗元素消失→继续原流程。有些弹窗关闭按钮藏得深定位不到,用键盘Esc键或点击遮罩区域兜底。

下载文件与处理下载对话框

文书下载用"下载文件"指令,保存目录参数设为按日期分类的文件夹,指定文件名参数配合前面Python拼的file_name。如果站点走的是浏览器原生下载流程,用"处理下载对话框"指令应对浏览器弹出的保存确认框。影刀还有"HTTP 下载"指令,文书文件有直链时可直接按URL下载,超时时间默认300秒,大文件也扛得住。下载完成后用"等待文件"指令确认文件真实落盘,再写台账,不然台账说成功、文件其实没下完,这种假成功最难排查。

数据处理:下载台账与文书内容提取

台账Excel三件套:开始下载前"写入内容至Excel工作表"写表头,每篇下载完成后追加一行记录文件名、路径、下载时间、状态,结尾统计成功失败数。几百份文书的下载记录攒在数据表格里,最后"写入表格数据"一次性落表。

文书正文如果是图片或扫描件,用影刀离线OCR做文字识别,识别结果和原文书关联存表,后续做类案检索才能全文搜索。纯文本格式文书用"从文本中提取内容"和正则直接抽字段:当事人、判决金额、引用法条,这些结构化字段才是文书分析的核心资产。

鼠标键盘与图像自动化:滑块与特殊控件的兜底

文书平台常有滑块或点选验证,这类控件元素定位基本无效。影刀的图像自动化是兜底方案:用"等待图像"等验证控件出现,"点击图像"按截图匹配点击目标图片,滑块用"拖拽元素"配合锚点偏移拖到位。识别类验证码可以用"点击文本(OCR)"按屏幕上识别出的文字点击,配合影刀离线OCR。

键盘自动化用在两处:Esc关弹窗、Ctrl+S触发另存(个别站点没有下载按钮只能靠浏览器快捷键)。影刀支持虚拟键盘鼠标驱动,安装后模拟操作不占用真实鼠标键盘,夜里定时跑流程时人机互不干扰,建议装。

进阶技能:接口监听与Python协同提效

结果列表数据多数来自接口。用"开始监听网页请求"监听检索接口,翻页时"使用网页监听指令获取数据"拿JSON,一次响应带整页文书列表,比页面循环提取快且稳。文书ID拼出详情页URL后进入下载环节,两条路线可以混用:清单靠接口,下载靠页面。

Python代码段承担所有脏活:文件名清洗、日期标准化、Excel去重判断(案号是否已在历史台账,避免重复下载)、失败重试队列。这些逻辑用指令拼会很长,Python十行搞定,影刀里Python图标要点亮才能用,装完客户端在设置里确认Python引擎就绪。

系统联动:定时任务、邮件与飞书通知

批量下载适合夜里无人值守:定时触发器配每日触发,凌晨2点跑,避开平台白天的访问高峰。触发方式支持每日、每周、预约、自定义间隔和Cron表达式,生效前提是高级任务计划已启用,Windows电源设置里把睡眠关掉,官方文档专门讲过计划任务Windows电源设置问题,休眠导致的"任务没跑"排障我见过太多次。

跑完的结果用"发送邮件"指令把台账Excel作为附件发给自己,成功失败一目了然;团队协作场景用"飞书群通知"发摘要消息:本次检索案由、下载成功数、失败数,机器人地址填群webhook,签名校验按群机器人安全设置填密钥。企业版调度场景下,任务监控页面还能配置告警邮箱和钉钉通知,流程异常自动提醒,无人值守才真的放心。

工程化规范:子流程拆分与命名规范

我拆成五个子流程:01_登录与登录态检查、02_检索与清单收集、03_单篇下载、04_台账与去重、05_结果通知。主流程只做调度,逻辑都下沉到子流程,参数用输入输出变量传递。子流程命名带编号,主流程里读起来像目录,接手的人不用点开就知道每步干什么。

调试三板斧:断点(指令右键添加断点)、单步执行、变量面板。批量下载的失败九成是定位或等待问题,单步跑到失败那篇,看变量面板里网页对象和文件名变量的实际值,原因基本当场现形。模板化方面,这套"检索→清单→循环下载→台账→通知"的结构是通用的,换一个下载场景(论文、公告、报告)只改定位和文件名规则。

易错速查表:文书下载高频翻车点

现象原因解决办法
台账显示成功但文件不存在下载未完成就写记录用等待文件指令确认落盘后再写台账
详情页提取不到正文正文异步加载未完成等待元素(web)等正文容器,超时15秒
文件名含非法字符保存失败案号或标题带/:*等符号Python正则替换非法字符后再命名
翻几页后被要求登录或弹验证访问频率过高循环加2-3秒间隔,异常时通知人工介入
下载几百份文件名重复覆盖命名没含案号唯一项文件名必须拼案号,写入前查台账去重

学习资源与延伸阅读

官方文档里"下载文件"“处理下载对话框”"网页相似元素循环常见场景及解决方案"三篇是这类流程的必读参考,参数说明比我这篇细。这套裁判文书检索与批量下载流程的完整源码我放在代码仓库 home.linyan.cloud,可以直接参考改造,替换检索条件和保存目录就能投入使用。

#影刀RPA #RPA自动化 #批量下载 #数据采集 #循环操作 #异常处理

作者:林焱

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

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

立即咨询