维护、运行、调试并安全地准备用于上传的 CNIPA 专利状态批量查询 Streamlit 工具。在开发专利状态查询程序、CNIPA/国知局状态自动化、Excel 输入/输出处理、Playwright/CDP 浏览器查询、选择器更新、本地启动脚本,或对该项目的 GitHub 代码进行清洗(sanitization)时使用。
Perfatent Status Query Skill.
功能概述
Perfatent Status Query Skill.是一项面向实际任务的技能,主要用于Overview. 将这一技能用于专利状态批量查询程序;该项目是一个本地的Streamlit app程序,它读取 Excel 工作手册,查询 CNIPA 专利状态页面 t。
核心要点
- 它将相关步骤、工具调用和结果整理方式集中到统一流程中,帮助使用者更快完成目标并减少重复操作。
- 使用时应结合输入条件选择合适的执行方式,核对必要参数、依赖环境与输出内容,并按原始要求处理异常情况。
- 从功能定位来看,该技能强调把分散的操作要求整理成清晰、可复用的处理流程,使用户能够围绕既定目标快速准备输入、选择执行方式并获得结构化结果。
使用与执行
实际使用前应先确认任务范围、数据来源、运行环境、必要权限和关键参数,再依据技能说明逐步执行;若输入条件不完整,应先补齐信息或采用保守配置,避免因错误假设导致结果偏离需求。执行过程中需要关注工具调用是否成功、接口或依赖是否可用、输出格式是否符合预期,并对异常提示、缺失字段和边界情况进行处理;
结果检查与注意事项
涉及批量任务时,还应保存进度,避免中断后重复操作。该技能适合用于一次性任务,也可以接入自动化工作流,与其他技能或上层代理配合完成更完整的业务链路;在组合使用时,应明确每一步的输入输出关系,并避免不同步骤之间出现参数冲突。
专利状态查询技能
概述
本技能用于专利状态批量查询程序。该项目是一个本地运行的 Streamlit 应用,读取 Excel 工作簿,通过 Playwright 或 Edge CDP 会话访问国家知识产权局(CNIPA)专利状态页面进行查询,匹配结果,并导出带标注的 Excel 工作簿。
请确保生成的代码、文档及 Git 提交中不包含任何私有数据。严禁在技能或代码仓库中嵌入真实案件名称、申请人名称、账户凭据、Cookie、本地存储令牌、浏览器配置文件、日志、截图或生成的 Excel 输出文件。
项目结构图
核心入口文件:
app.py:Streamlit 用户界面与主工作流逻辑。requirements.txt:Python 依赖列表。.env.example:安全的运行时配置模板。一键打开网站.bat:网站根目录启动脚本。开国知局网页.bat和scripts/start_edge_debug.bat:以启用 CDP 调试模式启动 Edge 浏览器,供手动登录使用。scripts/start_streamlit_8502.bat:在http://127.0.0.1:8502启动 Streamlit 服务。
模块化包结构:
patent_status_tool/config.py:运行时路径与环境变量定义。patent_status_tool/browser_client.py:浏览器/CDP 协调控制逻辑。patent_status_tool/query_service.py:批量查询主流程。patent_status_tool/excel_io.py:Excel 工作簿解析与导出逻辑。patent_status_tool/matcher.py:命中结果筛选逻辑。patent_status_tool/status.py:状态字段标准化处理。patent_status_tool/selectors.py:CNIPA 页面 DOM 选择器定义。patent_status_tool/models.py:数据结构模型定义。patent_status_tool/result_cache.py:JSONL 格式检查点缓存。patent_status_tool/logger.py:日志系统初始化配置。
仅在运行时生成的路径:
.env.session/logs/output/edge-cdp-profile/.venv/__pycache__/
请将上述运行时路径视为敏感或自动生成内容,务必将其加入 .gitignore 并禁止上传至远程仓库。
工作流程
修改行为前,先检查本地上下文。
- 阅读
app.py、相关patent_status_tool/*.py模块及启动脚本。 - 新增文件前,请先检查
.gitignore配置。 - 推荐使用
rg(ripgrep)执行全文搜索。
- 阅读
保持数据流向不变。
- 从本地路径加载
.xlsx文件,或使用上传功能作为备用方案。 - 自动识别“名称”、“撰写时间”列;并可选识别“申请号”、“申请人”和“状态”列。
- 若某输入行已含申请号,则优先采用申请号查询方式。
- 仅当无申请号时,才使用专利名称查询。
- 将查询结果及人工复核表导出至
output/目录。
- 从本地路径加载
保障 CNIPA 自动化流程健壮性。
- 当 CNIPA 页面 DOM 发生变更时,及时更新
patent_status_tool/selectors.py中的选择器。 - 优先选用稳定语义的选择器(如标签名、ARIA role、文本锚点、业务语义标识),避免依赖易变的位置型选择器(如 nth-child)。
- 当需登录、验证码识别或人工验证时,应使用基于 CDP 的 Edge 流程。
- 不可假设当前 CNIPA 页面可在未登录状态下直接查询。
- 当 CNIPA 页面 DOM 发生变更时,及时更新
本地验证所有变更。
- 最低限度需执行以下编译检查:
..venvScriptspython.exe -m py_compile app.py scriptsinspect_workbook_sheets.py patent_status_toolconfig.py patent_status_toolexcel_io.py
- 验证 UI 启动功能,请运行:
.一键打开网站.bat
- 验证手动 CNIPA 登录/CDP 功能,请运行:
.开国知局网页.bat
- 为 GitHub 安全发布做好准备。
- 确认
.gitignore已排除.env、.session/、logs/、output/、edge-cdp-profile/、.venv/、各类缓存文件以及原始工作簿文件。 - 移除或脱敏所有硬编码的本地路径、个人姓名、公司名称、真实案件名称及内部工作簿文件名。
- 上传前,请全局搜索私有路径、浏览器令牌、真实账户显示名、个人/企业标识符及工作簿名称等敏感信息。
- 确认
Excel 规则
支持的必需列别名:
- 名称:
专利名称、名称、案件名称 - 撰写时间:
撰写时间、撰写日、交底书时间、起草时间
支持的可选列别名:
- 申请号:
申请号、申请号/专利号、专利号、申请编号 - 申请人:
申请人、专利申请人、申请(专利权)人、申请人/专利权人
工作表与状态行为规则:
- 在发明专利工作表中,仅对状态包含
复审中、答复、已完成、已消化或审查的行发起查询。 - 在实用新型工作表中,跳过 L 列状态为
非正常、驳回或授权的行;其余命名行正常查询。 - 当按专利名称查询后仍存在多个匹配项时,进一步按
申请日 >= 撰写时间过滤;若仍无法唯一确定,则归入人工复核。
输出规则
导出的工作簿应保留原始工作表全部数据,并追加以下结果列:
申请号申请人当前状态规范化状态申请日匹配说明是否需人工核对查询时间原始命中数量
同时创建名为 人工复核 的独立工作表,用于存放存在歧义、查询失败或需人工介入判断的记录行。
安全规范
- 禁止提交
.env文件;默认配置应统一维护在.env.example中。 - 禁止提交浏览器存储、Cookie、localStorage、截图、HTML 页面快照、日志、输出工作簿及用户案件数据。
- 禁止在代码中硬编码绝对用户路径或项目专属私有工作簿名称。
- 禁止在代码或文档中明文存储 CNIPA 用户名或密码。
- 编写示例时,请使用占位符,例如
sample_input.xlsx、示例专利名称、示例申请人。 - 若所请求的变更需真实访问 CNIPA 系统,请明确区分“代码逻辑验证”与“线上查询验证”两个阶段。
常见任务指南
新增或更新启动行为
建议优先更新根目录启动脚本,并在 README.md 中同步记录新流程说明。所有启动脚本路径应基于 %~dp0 或 %CD% 设置相对路径,禁止使用绝对用户路径。
更新选择器(Selectors)
编辑 patent_status_tool/selectors.py。选择器命名需与查询语义对齐,例如:query_application_no_input、query_input、query_button、result_rows、result_status 及各详情字段选择器。
修改 Excel 解析逻辑
编辑 patent_status_tool/excel_io.py,并确保其返回接口契约与 app.py 所依赖的一致。若 load_inputs() 函数签名或返回结构发生变更,须同步更新所有调用方,包括 scripts/ 下的所有脚本。
修改匹配规则
编辑 patent_status_tool/matcher.py,必要时同步调整 patent_status_tool/status.py。除非用户明确要求更改,否则必须维持“申请号优先匹配”原则及“歧义条目进入人工复核”的既有行为。
清理上传内容
优先通过 .gitignore 配置 + 内容脱敏完成清理。若因权限限制无法执行破坏性删除操作,请清空敏感文件内容,并向用户明确说明哪些目录虽仍存在但已被 .gitignore 忽略。
热门AI工具
相关专题
本专题从实际API接口调试场景出发,讲解Postman身份认证的完整配置流程,包括常见认证协议介绍、授权参数设置、访问令牌填写、OAuth 2.0授权及认证失败排查,帮助用户正确完成接口授权与访问验证。
0
2026.11.06
围绕Postman HTTP请求头配置展开,讲解Headers选项的具体使用方式,包括Key和Value参数填写、请求头信息添加、常见Header字段设置及请求头修改方法,帮助用户解决接口调试过程中遇到的请求头配置问题。
0
2026.11.06
详细介绍Postman接口请求的创建与发送方法,涵盖GET和POST请求、URL配置、请求参数、Headers请求头、Body请求体设置以及响应结果查看,帮助用户掌握Postman接口请求的完整操作流程。
0
2026.11.06
DBeaver数据导入专题,整理Excel、CSV、SQL、TXT等常见文件的数据导入方法,涵盖目标数据库选择、数据表创建、字段映射、数据类型设置及导入参数配置等操作,帮助用户将本地文件中的数据写入数据库,并了解批量导入、重复数据处理和导入失败等常见问题的解决方法。
0
2026.11.05
DBeaver安全防护专题,围绕数据库连接安全、账号密码保护和访问权限管理展开,整理SSL/TLS加密连接、SSH隧道、数据库凭据保存及证书验证等配置方法,同时介绍敏感信息保护、远程连接风险和高权限账号使用等注意事项,帮助用户提高数据库日常管理的安全性。
0
2026.11.05
本专题聚焦DBeaver数据库连接配置与管理,覆盖从新建连接、选择数据库类型到填写连接参数和验证连接的完整流程。针对MySQL、PostgreSQL、SQL Server等常见数据库,整理相应的连接设置方法,并提供驱动缺失、认证失败和连接异常等问题的排查方向。
0
2026.11.04
本专题围绕XORM框架的结构体映射展开,说明表名与字段的命名策略、xorm标签常用属性、主键自增与时间字段自动填充,并演示Sync2自动建表、增量字段升级、索引声明与反向生成结构体的完整流程。
0
2026.11.04
本专题聚焦XORM框架的配置与连接环节,拆解MySQL、PostgreSQL、SQLite、SQL Server的DSN写法与驱动选择,讲清连接池参数、多数据源拆分、读写分离与超时重连的处理方式,并补充容器与兼容数据库的适配经验。
0
2026.11.04
本专题聚焦XORM框架的配置与连接环节,拆解MySQL、PostgreSQL、SQLite、SQL Server的DSN写法与驱动选择,讲清连接池参数、多数据源拆分、读写分离与超时重连的处理方式,并补充容器与兼容数据库的适配经验。
0
2026.11.04
热门下载
相关下载
精品课程
共6课时 | 12.1万人学习
共79课时 | 161.8万人学习
共6课时 | 54.7万人学习
最新文章