Skip to content

第32课 · 实战:做一个注协工商信息查询 Skill(带登录 + 批量全维度导出)

小黑一手举着 CPA 会员卡刷卡进门,另一手从工商档案柜里一次抽出几十份 Excel,背后企业云的登录滑块被它踩在脚下

本节要点

  • 承接第 31 课:上一节做了「无登录」的法规查询 Skill,这一节升级到真实工作中最常见的场景——需要登录、有验证码的会员制系统
  • 真实痛点:审计往来科目要查成百上千家客户/供应商的工商信息,企查查、天眼查的接口都很贵——而你手里的执业 CPA 证书,本身就附赠一个免费的「企业云」查询权限,支持批量查 1 万家企业、56 十个维度,只是大多数人不知道怎么高效用起来
  • 核心难点:登录有滑块验证码——这一节给你一套通用解法:登录用浏览器(手动过一次),查询全部用代码(抓 cookie 复用,24 小时内不用再登录)
  • 核心心法:cookie 复用——登录一次把凭证抓下来存成文件,后续所有查询纯代码完成,不用每次开浏览器
  • 批量全维度导出:上传一份公司名单 Excel,自动勾选全部维度、轮询下载状态、解压出每个维度一个 Excel——一个命令搞定
  • 可迁移:这套「带登录网站的自动化」套路,能直接套用到报税系统、监管机构网站、公司报销系统等你日常要反复登录操作的地方
  • 成品可直接用:课程网盘里会把这个做好的 Skill 打包分享

💡 注协行业信息系统网址:https://cmis.cicpa.org.cn(需要执业注册会计师账号才能登录使用企业云功能)


1. 承接:从「无登录」到「有登录 + 验证码」

第 31 课我们做了一个法规查询 Skill,数据来自公开的国家法律法规库——不用登录,直接调 API 就能查

但真实工作里,你常用的系统大多不是公开的

  • 注协的企业云(查工商信息,要 CPA 账号登录)
  • 电子税务局(报税,要登录)
  • 市场监管局网站(报备,要登录)
  • 公司内部的报销 / 审批系统(要登录)

这些系统的共同特点:要登录、有的还有验证码。第 31 课的「直接调 API」那套在这里卡壳了——因为 API 请求要带着登录后的凭证,你还没登录呢。

这一节就拿注协企业云开刀,教你做这种「带登录」的 Skill。它比 31 课复杂,但更贴近真实工作——学会这套,你工作中那些「天天要登录、要重复操作」的系统,基本都能自动化掉。


2. 先看痛点:你手里有个免费的企业查询权限,却没用起来

先说说为什么要费这个劲做这个 Skill。

审计场景里的高频需求

做审计,你几乎天天要查企业工商信息:

  • 往来科目:客户、供应商的注册资本、法人、经营范围、存续状态
  • 发函地址核查:银行询证函、企业询证函的寄送地址,要对注册地址
  • 关联方核查:股东、对外投资、实际控制人,挖出隐藏的关联关系
  • 尽调:企业的司法风险、行政处罚、经营异常

一家一家手工查?一个往来科目几十上百家供应商,查到怀疑人生。

两条路:花钱 vs 白嫖

路子成本数据
企查查 / 天眼查 API很贵(按次计费,批量查分分钟几百块)
注协企业云(企洞察)免费(执业 CPA 会员权限自带)全(56 十个维度)

视频里我算过一笔账:你调企查查、天眼查的接口批量查,要花不少钱。但你只要是有执业资格的 CPA,注协给你开的会员账号里,就带一个企业云(企洞察)的查询权限——数据维度一点不比商业平台少,还能批量查、批量导出。

唯一的门槛:注协这个系统是网页版,要登录、要过滑块验证码,批量操作得人工点几十个复选框,很麻烦。所以虽然免费,大多数人懒得用。

而这,正是让 AI 做个 Skill 来解决的事——把「登录 + 批量查询 + 全维度导出」全自动化,免费的数据白嫖到手。

它还能当「基础设施」用

这个工商查询 Skill 做出来后,不只是单独用——它能和你后面的审计程序串起来。比如你做关联方核查、回函地址查验,AI 可以直接调用这个 Skill 拿数据,不用你手动查了再贴回去。它是一个底座,后面很多审计自动化都建立在它之上


3. 先看成品:这个 Skill 能干什么?

动手前,先看看要做出什么东西。

两个核心能力

① 基本工商信息查询(单家或几家)

告诉它几家公司名,它直接返回工商基本信息——注册地址、法人、注册资本、统一社会信用代码、经营范围……一个接口搞定。

视频里我让它「查 5 家上市公司的工商注册地址」,它调用基本接口,几秒出结果。

② 批量全维度导出(最多 1 万家)

丢给它一份公司名单 Excel,它:

  1. 上传名单到注协系统
  2. 自动勾选全部 56 十个维度(工商、股东、对外投资、分支机构、变更记录、司法风险、知识产权、经营状况……)
  3. 轮询下载状态,生成好了自动下载 zip
  4. 解压——每个维度一个 Excel,一份公司一行

视频里我导出 3 家公司的完整维度,解压出来 45 个 Excel 文件,从基础工商到诉讼、高管、投资、股东,非常全

💡 注协系统单次批量查询支持最多 1 万家企业。一个往来科目的客户供应商清单,绰绰有余。


4. 核心难点:有登录、有滑块,怎么破?

这是本节课最关键的技术认知,先讲清楚。

问题:登录卡住了自动化

注协企业云登录要三样东西:

  1. 会员编号 + 密码
  2. 网易易盾滑块验证码(要拖动滑块拼图)
  3. 登录后还要进「行业执业知识库 → 企业数据 → 企业云」,才会建立查询会话

其中滑块验证码是最大的拦路虎——它是专门的反爬措施,理论上可以逆向破解,但难度不小,视频里我没去搞自动过滑块

解法:登录用浏览器,查询用代码

这是面对「有验证码登录」的通用解法,记住这个分工:

登录(要过滑块)  →  用浏览器,人工操作一次
查询(纯数据请求)→  用代码,全自动

具体怎么做?

  1. 第一次用,或者 cookie 失效时:Skill 检测到没有 cookie,自动打开浏览器,你手动登录(输账号密码、拖滑块),登录成功后,Skill 自动把登录后的 cookie 抓下来存成文件
  2. 之后所有查询:Skill 读这个 cookie 文件,用纯代码(Python 发 HTTP 请求)查询——不用再开浏览器
  3. cookie 失效了(注协的 cookie 大约 24 小时有效):Skill 检测到失效,提示你重新走一遍第 1 步

为什么这样设计

滑块只能人工过,但查询不用。登录这一次麻烦认了,换来后面 24 小时内所有查询全自动——这笔买卖划算。而且 cookie 文件存一次,期间你查 1 家还是 1 万家,都是纯代码,又快又稳。

这也是「能全自动就全自动,实在自动不了的(比如滑块)就最小化人工」的原则——登录这一下人工,其他全自动。

背后的认证机制(看不懂没关系,AI 会处理)

注协系统的查询请求,要带两样东西才能成功:

  • Cookie:登录后会话凭证(一长串)
  • x-xsrf-token:一个防伪造的安全令牌(CSRF 防护,Spring Security 那套)

这两样 AI 抓包时会自己分析出来,写成代码自动带上。你不用懂它,只要知道:AI 抓一次包,把这两个凭证固化进脚本,后面查询就不用再登录


5. 实操第一步:把需求讲清楚(复制这段话)

新建一个会话(OpenCode / Claude Code 都行,需要先装好 Playwright,看第 30 课),把下面这段话完整复制给 AI:

text
这是注册会计师协会的登录网站:https://cmis.cicpa.org.cn

我希望你能帮我做一个 Skill,获取协会网站里面「行业数据」里面
有个「企业云」的可以查询工商信息的界面:
1. 一个是获取基本的工商信息
2. 另外一个就是它有一个批量查询的功能,
   我希望能够上传工商信息的公司名称的文件,然后能够去下载所有维度的文件。

我们可以一步一步去做,你可以先帮我去完成登录,然后我们一步一步去做。
登录的话,我这个 Skill 里面你需要去检查这个有没有 cookie,
或者 cookie 失效的话,我们就打开浏览器让用户去登录——
因为它有一些极点滑块的验证,包括账户信息的输入。
登录完成过后,你需要去帮我获取 cookie 信息,能够把它保存下来,
然后在它有效的范围内可以做一个复用。

我希望你在用浏览器操作的过程中能够分析网络请求,
如果尽量能用代码完成的就用代码完成,后续我尽量不用打开浏览器进行操作
(除了登录的这个信息之外)。

请以 Skill Creator 的规范进行创作,浏览器请直接使用我电脑已安装的浏览器。

这段话里藏了五个关键要求

① 「一步一步做,先做登录」

又是小步快跑。别让 AI 一上来搞全部,先把登录 + cookie 抓取这个地基打通,再做查询。

② 「检查 cookie,失效就打开浏览器登录」

这就是第 4 节讲的「cookie 复用」机制。明确告诉 AI:每次用先查 cookie 在不在 / 失效没,不行才开浏览器。这是带登录 Skill 的标准设计。

③ 「分析网络请求,尽量用代码完成,后续不开浏览器」

承接第 31 课的「抓包一次,固化成脚本」。让 AI 抓包分析 API,写成脚本,以后查询不用开浏览器——又快又省。

④ 「以 Skill Creator 规范创作」

让 AI 遵循标准的 Skill 规范(目录结构、SKILL.md、脚本组织),做出来通用规范。

⑤ 「用已安装的浏览器」

别让 AI 又去在线下载 Chromium(第 30 课讲过的坑),直接用你电脑里的 Chrome / Edge。


6. 你需要配合做的:手动登录一次

发完需求,AI 会打开浏览器到注协登录页。这时需要你手动操作

  1. 输入会员编号 + 密码(视频里我用 Bitwarden 密码管理器,不用记一堆账号密码)
  2. 拖动网易易盾滑块验证码
  3. 点登录

登录成功后,AI 还会引导你做一步关键操作:

登录后,要点开「行业执业知识库」,进到「企业数据 → 企业云」那个查询界面——因为注协的工商查询是调用的外部供应商(企洞察),必须进到企业云这个界面,查询会话才会建立,cookie 才完整。

进到企业云界面后,告诉 AI「我已登录并进入企业云」,它就会自动抓取 cookie、分析网络请求。

为什么滑块不做成全自动

理论上滑块验证码可以逆向破解,但有难度,而且有封号风险。视频里我选择人工登录这一次——反正 24 小时才登一次,人工几秒钟的事,换来之后全天自动化,性价比很高。别为了省这几秒,去冒封号的风险


7. AI 会怎么干?(看懂它的工作流)

你登录后,AI 会按这个流程探索和构建 Skill。看懂它在干嘛,能帮你判断跑偏没。

AI 进入企业云后,会分析网络请求,发现两样关键的认证信息:

  • Cookie:一长串会话凭证
  • CSRF Token(x-xsrf-token):防伪造令牌

它会自己琢磨出:所有查询请求都要同时带这两个东西。这一步 AI 比人工 F12 抓包强——它自己分析出认证机制,不用你懂。

Step 2:抓查询 API

AI 会用真实公司(比如贵州茅台)做一次搜索,捕获查询接口;再打开详情页,捕获详情接口。视频里它抓到了:

  • 搜索接口:输入公司名,返回公司列表 + org_id(每家企业的唯一编号,查详情的钥匙)
  • 详情接口:用 org_id 查工商基本信息、股东、分支机构……

Step 3:用 curl / 代码验证

抓到 API 后,AI 会脱离浏览器,用代码(带着抓到的 cookie + token)直接请求验证——确认这些 API 可以独立调用,不依赖浏览器。验证通过,就关掉浏览器,进入写脚本阶段。

Step 4:写成 Skill 脚本

AI 会创建标准的 Skill 目录,写几个脚本:

  • login.py:用 Playwright 打开浏览器、等你登录、抓 cookie 存文件
  • cicpa_client.py:HTTP 客户端,加载 cookie 自动带上认证,封装查询方法
  • check_session.py:检查 cookie 是否还有效
  • API 参考文档:记录所有接口规范,下次 AI 调用直接读

💡 关于 cookie 这个敏感信息:cookie 里含登录凭证,属于敏感数据。AI 会把它单独存到一个独立文件(不和 Skill 代码混在一起),而且默认不进 git。你不用担心 Skill 分享给别人时泄露自己的登录态。


8. 实操第二步:补全维度——从「基本」到「全维度」

第一个版本 AI 只做了基本的工商信息查询。但注协企业云的详情页有 9 大类、约 90 个维度(股东、对外投资、分支机构、变更记录、司法风险、知识产权、经营状况、上市信息……)。

视频里我做了一个决定:让 AI 把这些维度全部补全——之前做的版本只覆盖基础信息,现在做成一个更全的。

给 AI 的新指令

text
我希望你把详情页各个维度的 API 都补全——
比如股东、对外投资、分支机构、变更记录、司法风险、知识产权、经营状况等
高频维度的 API,都给它补上,让这个 Skill 能查得更全。

AI 会遇到的硬骨头:嵌套 iframe + 路由

这一步 AI 花了挺长时间(视频里大概 20 分钟)。原因:

  • 详情页的数据不在主页面,在一个嵌套的 iframe
  • 维度切换是靠改 URL 的 hash#/tab/维度名)触发加载,不是普通点击
  • 有些维度默认隐藏,要点进去才加载

AI 自己摸索出机制:直接改 location.hash 触发路由加载,绕开点击不稳定的问题。它逐个点击 9 个大类,抓每个维度的请求,建立「维度名 → API 地址」的映射。

💡 这一段过程比较长,但很真实。AI 探索复杂网站不是一蹴而就的——它会失败、会重试、会自己修正。视频里它中间失败了好几次(有些维度抓不到),最后通过分析前端 JavaScript 源码,把 90 个维度的 API 全部摸清。这种时候别打断它,让它自己探索,我视频里就是去吃饭了,回来发现它已经搞定了。

最终 AI 验证:90 个维度全部有效,写进了 Skill 的维度字典里。


9. 实操第三步:批量查询 + 全维度导出

单家查询全维度做完后,进入重头戏:批量查询

给 AI 的指令(可以发完去吃饭)

text
后面你进行批量查询和多维度数据下载的时候,你可以:
1. 模拟它的上传 Excel 模板,然后上传文件
2. 它上传后查询需要等待一段时间,需要到「查询结果下载」的界面去轮询它的状态
3. 运行状态是成功过后,再去下载它的文件
4. 下载前它需要勾选一些导出的维度,我们需要全部的维度
5. 它下载的是一个压缩包,下载过后需要把这些压缩包进行解压缩
   ——每个维度是一个一个 Excel

你按照这个思路做一个探索,及时把所探查到的 API 信息、脚本,
和后面批量查询的脚本,都记录写到我们的 Skill 里面。

这段指令把完整流程拆成 5 步告诉 AI,非常清晰。发完你可以去休息——这一步 AI 要探索上传接口、轮询机制、下载接口,挺花时间。

AI 摸清的批量查询流程

视频里 AI 探索完,摸清了完整流程(全部纯代码,只需 cookie):

准备名单 Excel(表头「企业名称」,每行一家)

上传文件 → 拿到 batch_id(这批查询的编号)

勾选全部 61 个维度(每个维度有个 S 编码,全选)

提交导出任务

轮询「下载中心」的任务状态(status: 生成中 → 已生成)

状态变成「已生成」,自动下载 zip

解压(zip 里每个维度一个 Excel + 一个统计表)

一个有意思的坑:中文文件名乱码

下载的 zip 解压时,AI 发现文件名是乱码——因为这个 zip 是 Windows 生成的,文件名用 GBK 编码,而 Mac / Linux 默认按 UTF-8 解,就乱了。AI 自己查出原因,在解压代码里加了 cp437 → gbk 的编码转换,完美解决。

💡 这种细节,自己写爬虫很容易踩坑。AI 能自己发现并修复——这就是让它干脏活累活的价值。

验收点

视频里我用 3 家公司测试,解压出 45 个 Excel(44 个有数据的维度 + 1 个统计表)。基础的工商信息 Excel 有 23 列(企业名称、登记状态、法定代表人、注册资本、成立日期、省市县、电话、邮箱、统一社会信用代码、参保人数、企业类型、行业、地址、经营范围……),数据非常全。


10. 实操第四步:打磨 Skill(改名 + 规范 + 跨平台)

核心功能跑通后,进入打磨阶段。视频里我提了几个优化要求,都是让 Skill 更好用的关键。

改个好听的名字

AI 第一次取的名字可能不好记(视频里它叫 cicpa-enterprise-cloud),直接让它改:

text
我希望这个 skill 的名称改成 cicpa-company-query。
另外,我希望 skill 按照 Skill Creator 的规范进行改造。

Skill 名字本质就是文件夹名,改起来很方便。

验证「cookie 失效」的流程

这是个容易被忽略、但很关键的测试。让 AI 故意删掉 cookie,模拟 cookie 失效,验证整套流程还能跑通:

text
你可以把 cookie 给删除了,然后测试一下这个登录的流程,
或者说 cookie 失效过后的流程,确认能够跑通。
并且这一个尽量使用已有的浏览器,不要直接去下载 chromium 的浏览器。

视频里 AI 删掉 cookie 后:

  1. 检测到 cookie 不存在 → 提示失效
  2. 自动打开浏览器(用系统已装的 Chrome,不下载 chromium)
  3. 我手动登录 + 进企业云
  4. AI 自动抓 cookie、保存
  5. 查询恢复正常

整个失效→恢复的闭环验证通过。这一步很重要——保证 Skill 不会因为 cookie 过期就废掉。

跨平台 + 支持国内浏览器

最后一个优化,让 Skill 在 Windows 和 Mac 都能用,并且支持国内主流浏览器:

text
我希望它能在 Windows 和 Mac 上都可以使用。
找系统内的浏览器的时候,尽量使用已有的,
包括国内主要浏览器(360、QQ、搜狗、UC 等)希望尽量可以支持。

AI 会写一个浏览器查找模块

  • Windows:优先查注册表找浏览器(最可靠)
  • Mac:扫 /Applications 目录
  • 支持的浏览器按优先级:Chrome > Edge > Brave > 360 > QQ > 搜狗 > UC……

这样不管你或你同事电脑装的是什么浏览器,Skill 都能自动找到并启动,不用额外配置。


11. 一个要特别注意的点:批量下载别下错别人的任务

视频里我特意提醒了一个坑(也是 AI 自己发现并修好的):

注协的「下载中心」是所有用户共享一个任务列表(或者多人共用一个账号时)。你提交的批量导出,和别人提交的,都混在一个列表里。

如果 AI 笨笨地「找最新的一个已生成任务就下载」,可能下到别人的文件

AI 的解法很巧妙:

  • 提交导出前,先记下当前任务列表里已有的所有任务编号(快照)
  • 提交后轮询时,只认快照里没有的新任务——这一定是自己刚提交的
  • 多个新任务时,取最新的那个

这样即使列表里混着别人的任务,也能精准下到自己那份。这个细节体现了 AI 处理真实场景的能力——它会想到你可能没想到的边界情况。


12. 这套套路能迁移到哪些地方?

视频最后我强调:这个 Skill 本身是次要的,学会这套「带登录网站自动化」的套路才是主要的

只要是你日常工作中要反复登录、重复操作的网站,都能套用:

场景怎么套
电子税务局报税登录一次抓 cookie,批量申报、批量下载报表
市场监管局报备批量上传年报、批量查备案状态
公司报销 / 审批系统批量提交报销单、批量下载审批件
银行询证系统批量发函、批量查回函状态
任何要登录的数据查询登录抓 cookie,查询纯代码

套路都一样:

  1. 让 AI 打开网站,你手动登录过验证码
  2. AI 抓 cookie + 分析查询 API
  3. 写成脚本,后续全自动
  4. cookie 失效重新登录一次

为什么强调迁移

注协企业云你可能用得不多,但**「带登录 + 验证码」是绝大多数工作系统的常态**。学会这一节,你掌握的是一把万能钥匙——以后遇到任何「天天要登录折腾」的系统,都能让它自动化。这才是 AI 给财务审计人最大的价值之一:把你从重复的登录、点击、下载里解放出来


13. 常见问题与避坑

13.1 我没有执业 CPA 账号怎么办?

注协企业云确实需要执业 CPA 账号。如果你没有,可以用别的「有登录 + 验证码」的网站来练手——本课教的是套路,不是非注协不可。找一个你需要登录、要重复操作的网站,套同样的流程做一遍,一样能学会。

13.2 滑块验证码能不能自动过?

技术上能逆向,但有封号风险,不建议。视频里我选择人工登录这一次(反正 24 小时才一次),换来之后全天自动化。别为了省几秒冒封号风险。

注协的 cookie 大约 24 小时有效。失效后所有查询会返回 403 错误,Skill 会检测到并提示你重新登录。重新跑一次 login.py,手动登录一下就好。

13.4 批量查询能查多少家?

注协系统单次批量上限 1 万家企业。对审计往来科目来说绰绰有余(一个科目的客户供应商清单通常几百到几千家)。

13.5 批量下载的 zip 解压乱码?

这是 Windows 生成的 zip 文件名用 GBK 编码、Mac/Linux 默认 UTF-8 解导致的。Skill 的解压代码已经处理了(cp437→gbk 转换),你不用管。如果自己写脚本遇到,记得加这个转换。

13.6 多人共用一个账号,会下错别人的文件吗?

不会。Skill 提交导出前会快照任务列表,只认自己提交后新出现的任务(见第 11 节)。即使列表里混着别人的,也能精准识别自己的。

13.7 这个方法能套用到报税系统吗?

能。**「登录用浏览器 + 查询用代码 + cookie 复用」**是通用套路。报税、报备、报销……只要是带登录的重复操作,都能套。把第 5 节那段指令里的网址和需求换一下,让 AI 给你做一个。

13.8 做好的 Skill 怎么测试?

第 31 课一样——新开一个干净的会话,从零给一个任务,看 Skill 能不能独立完成。别在开发时的会话里测(那个会话有上下文记忆,测不准)。


关键收获

TIP

这一节我们做了一个注协工商信息查询 Skill——能查基本工商信息、能批量导出 1 万家企业的全维度数据,把执业 CPA 自带的免费查询权限真正用起来。

三条心法(承接前两课,但用在了更复杂的场景):

  1. 登录用浏览器,查询用代码——滑块验证码人工过一次,抓 cookie 存下来,24 小时内所有查询纯代码自动完成
  2. 小步快跑——先做登录,再做基本查询,再补全维度,最后做批量,一步步加
  3. 用已安装的浏览器——别让 AI 在线硬下 Chromium,优先复用系统浏览器(还支持国内的 360 / QQ / 搜狗)

一个进阶认知:

  • 「带登录网站自动化」是一套通用万能钥匙——报税、报备、报销、询证,任何要反复登录操作的系统,都能套这个套路

成品 Skill 我会放在课程网盘。但更重要的是:学会这套套路,你工作中那些「天天要登录、要点要下」的系统,基本都能让它自动跑——这才是 AI 给财务审计人最实在的效率提升。


更多课程:课程大纲

© 2025 逆行的狗