波兰信贷风控从业者有个公开的秘密:查一家企业是否破产,得手动登录krz.ms.gov.pl,在AngularJS老古董界面里逐个输入、等待、刷新。没有批量导出,没有接口,政府似乎默认所有人都该雇个实习生专门点鼠标。
唯一商业方案MGBI要价每月200-500欧元。银行付得起,小团队只能干瞪眼。
有人把SPA拆了,发现后端裸奔
KRZ门户是个单页应用(Single Page Application,一种无需刷新整个页面即可动态更新内容的网页架构),用iframe嵌套Angular子应用。这些子应用向政府OpenShift后端的REST接口发请求,接口返回结构化JSON——9个搜索端点,覆盖破产、重组、强制执行全流程。
唯一的门槛是个JWT令牌,在应用初始化时签发。拿到它,就等于拿到了政府数据库的只读钥匙。
Apify上有人把这个流程打包成了爬虫。新用户送5美元额度,能查约70家公司。对年审几百家企业的风控团队来说,这是原方案零头的零头。
技术实现不复杂:模拟初始化流程,拦截令牌,按KRS编号批量轮询。难点在于有人愿意先花几小时把政府的老旧架构摸清楚,再花几小时写成通用工具。
200欧元 vs 5美元,价差从哪来
MGBI的定价逻辑很银行:按调用量阶梯收费,附赠合规报告和客服。对需要审计留痕的金融机构,这值200欧。但对只想批量筛查供应商的采购经理、监控债务组合的保理公司,80%的功能是噪音。
开源爬虫砍掉的是合规包装,保留的是核心数据:企业名称、NIP税号、KRS编号、程序类型(破产/重组/执行)、受理法院、案件编号。
进阶用法是拿proceedingId(程序唯一标识)查详情:起止日期、全部当事人、法官变更记录、顾问指派、地址变更历史、公告全文。这些信息在手动界面里要点七八次才能凑齐,API一次返回。
五个爬虫拼出波兰企业全景
KRZ只是其中一块拼图。同一作者还做了另外四个:
MSiG查法院公告,eKRS看财务健康度,KRS Board Members挖管理层,还有一个覆盖许可证信息。五个数据源串起来,能回答:这家公司 solvent 吗?有未决诉讼吗?实际控制人换过几轮?资质有没有过期?
这在波兰是刚需。2023年波兰破产申请量同比增长23%,重组程序激增47%——数据来源是KRZ自己的统计,只是政府没提供方便的分析接口。
爬虫作者 minute_contest 的GitHub主页很干净,没留联系方式,只在Apify商店里挂了个邮箱。这种匿名感很东欧:工具放出来,用不用、怎么用、合不合规,用户自己掂量。
政府知道,但懒得改
KRZ门户2016年上线,AngularJS框架早在2021年就停止维护。政府IT的迭代速度,和法院处理破产案的速度倒是挺配。
开放数据倡导者吵了多年API,得到的回应是"正在评估"。与此同时,后端接口一直敞着,JWT令牌照发不误。这种半推半就的状态,催生了灰色地带的工具生态。
用爬虫查70家公司,和雇实习生点70次鼠标,拿到的数据一模一样。区别只在于前者留下了日志,后者留下了腱鞘炎。
5美元额度用完之后,Apify按调用量计费。查一家企业的成本约0.07美元,查一千家70美元。 still 比MGBI便宜两个数量级,且不用签年度合同。
风险也有:政府随时可能改认证流程,封掉这种绕过方式。但AngularJS的维护成本意味着,他们大概率没动力动。一个2016年的技术债,意外地成了开放数据的漏洞。
波兰信贷圈的小团队已经在用这套组合监控客户。他们的工作流是:每周一批KRS编号过KRZ,命中异常进MSiG看公告,再进eKRS拉财报。原本需要外包给征信机构的活,现在一个Python脚本加定时任务搞定。
最后一个细节:爬虫返回的JSON里,法院名称是波兰语原始拼写,比如"Sad Rejonowy dla Wroclawia-Fabrycznej we Wroclawiu"。没做本地化,没转英文,没帮你理解波兰的法院层级。数据裸着给你,解读权也在你。
这种"拿走,别问"的风格,像不像你司那个从不写文档但代码能跑的老后端?
如果中国企业的公开信息也能这样被批量提取,你觉得最先被撬开的会是哪个系统——天眼查、企查查,还是裁判文书网?
热门跟贴