5 次查询看懂韩国法院不动产拍卖:court-auction-notice-search 完全指南
5 次查询看懂韩国法院不动产拍卖court-auction-notice-search 完全指南【免费下载链接】k-skill한국인을 위한 스킬 모음집 - 에이전트를 한국인으로项目地址: https://gitcode.com/GitHub_Trending/ks/k-skill假设你在首尔打算参与不动产拍卖开口就是一句江南区这个月哪些法院在拍有没有最低价 5 亿以下、流拍至少 1 次的房子这正是 k-skill 仓库面向韩国场景的 Agent 技能集中court-auction-notice-search包要解决的问题它把韩国大法院运营的官方「법원경매정보法院拍卖信息」站点courtauction.go.kr上的不动产拍卖公告매각공고与案件信息转成 Agent 可直接消费的结构化 JSON。官方的难点在于站点没有公开 Open API而且对自动化调用的 IP 级拦截非常激进。所以这个包的核心命题不是怎么查到而是怎么查得慢、查得稳、查得合规。项目速览它是什么不是什么定位一个 read-only 客户端把法院公开的拍卖公告与案件信息转成结构化 JSON供人或 Agent 查询使用。解决的痛点站点无 Open API只能直连其内部 WebSquare韩国政务站点常见前端框架的 JSON XHR 端点且据仓库指令文档记载约 16 次/30 秒的密集调用就会触发约 1 小时的 IP 封禁。与同类方案的关键差异一级传输通道是直接 HTTP三条查询主路径都不需要真实浏览器浏览器只在自由条件检索被 WAF 拦截时才作为 fallback 出现。设计哲学慢即是稳slow is stable——调用间至少 2 秒加随机抖动、每会话 10 次调用预算、检测到封禁立即抛错停止宁可慢也不抢。明确边界参考用工具참고용。动产汽车、工程机械拍卖、公告照片、评估书 PDF、投标书自动填写全部不在范围内投标必须由人在法院完成。能力全景一张图看懂功能地图能力入口一句话说明拍卖公告列表查询searchSaleNotices()按拍卖日期月 法院 投标类型查公告卡片列表拍卖公告详情展开getSaleNoticeDetail()把一张公告展开为案件号、用途、地址、评估价、最低卖出价清单案件号直查getCaseByCaseNumber()按法院 案件号取案件信息、物件明细、各拍卖日记录、分配请求终期物件自由条件检索searchProperties()按区域、用途、价格区间、面积、流拍次数、拍卖日期组合搜索法院事务所代码表getCourtCodes()动态加载 60 个法院代码如B000210서울중앙지방법원首尔中央地方法院静态代码表getBidTypes()/getUsageCodes()/getRegionCodes()本地查投标区分기일입찰/기간입찰期日/期间投标、用途大分类、19 个 시도市/道代码两种传输客户端CourtAuctionHttpClient/CourtAuctionPlaywrightClient直接 HTTP 主通道与浏览器 fallback 通道均可自行构造注入CLIcourt-auction-notice-search命令codes / notices / notice-detail / case / search 五类子命令参数与输入规范该传什么格式参数所属函数必填约束与归一化datesearchSaleNotices是YYYY-MM/YYYYMM或YYYY-MM-DD/YYYYMMDD站点实际按月YYYYMM查询给特定日时查整月后按该日过滤courtCode列表/案件/检索案件必填必须匹配^B\d{6}$列表与检索中留空表示全部法院bidType列表/检索否date/period/韩文名/代码均可date기일입찰期日投标000331、period기간입찰期间投标000332空值两种都查caseNumbergetCaseByCaseNumber是推荐2024타경1000012024-100001、2024_100001等会被自动规范化regionsearchProperties否{sido, sigungu, dong}sido 可传代码或韩语名시군구/읍면동市郡区/邑面洞需传 raw 代码如11680강남구 江南区给了区域走地番地址搜索cortStDvs:2不给走公告模式1usagesearchProperties否{large, medium, small}5 位代码건물 建物20000或大分类韩文名토지/건물/차량및운송장비/기타土地/建物/车辆及运输设备/其他同名代码有层级保护未知值 fail-open 透传priceRangesearchProperties否最低卖出价韩元{min, max}允许小数appraisedPriceRangesearchProperties否评估金额韩元{min, max}允许小数saleDatesearchProperties否{from, to}YYYY-MM-DD或YYYYMMDDflbdCountsearchProperties否流拍次数{min, max}仅限整数areasearchProperties否面积㎡{min, max}允许小数page/pageSizesearchProperties否page 默认 1pageSize 只能取10/20/50/100默认 101等任意值会在本地直接拒绝避免 live 端点返回 HTTP 400includeRaw各查询否默认 true响应附带原始列raw透传client各查询否注入自定义CourtAuctionHttpClientfallback/fallbackOnBlockedsearchProperties否fallback 默认 true{fallback:false}全关BLOCKED 仅当显式fallbackOnBlocked:true才重试五个内部端点路径与请求体核心键见 src/transport/http.js 的ENDPOINT_PATHS常量目的POST 路径请求体核心键拍卖公告列表/pgj/pgj143/selectRletDspslPbanc.ondma_srchDspslPbanc.{srchYmd, cortOfcCd, bidDvsCd, srchBtnYn:Y}拍卖公告详情/pgj/pgj143/selectRletDspslPbancDtl.ondma_srchGnrlPbanc.{cortOfcCd, dspslDxdyYmd, jdbnCd, ...}案件单条/pgj/pgj15A/selectAuctnCsSrchRslt.ondma_srchCsDtlInf.{cortOfcCd, csNo}物件自由检索/pgj/pgjsearch/searchControllerMain.ondma_pageInfodma_srchGdsDtlSrchInfocanonical body法院事务所/pgj/pgjComm/selectCortOfcCdLst.on{} 注意jdbnCd审判部代码它是列表响应里返回的加密令牌外部无法凭空构造。这就是为什么详情查询推荐把列表的卡片对象含raw原样传入而不是自己拼参数——构造逻辑见 src/index.js 的buildNoticeDetailBody。实战 Walkthrough从第一次调用到 CLI最小可运行示例三步拿到一个月公告列表// Node 18先执行npm install court-auction-notice-search const { getCourtCodes, searchSaleNotices } require(court-auction-notice-search); async function main() { // 1. 动态加载法院事务所代码表 const courts await getCourtCodes(); console.log(加载 ${courts.count} 个法院事务所); // 2. 查询首尔中央地方法院 2026 年 4 月的全部拍卖公告 const notices await searchSaleNotices({ date: 2026-04, // 整月查询传 2026-04-27 则查整月后按当天过滤 courtCode: B000210, // 首尔中央地方法院 bidType: date // 仅期日投标改 period 查期间投标 }); console.log(매각공고拍卖公告${notices.count} 件); } main().catch((error) { if (error.code BLOCKED) { // 被站点封禁 IP立即停止约 1 小时后再试或换网络 console.error([BLOCKED] IP 被封锁请约 1 小时后重试); } else { console.error(error); } process.exitCode 1; });多工作流串联公告 → 详情 → 案件const { searchSaleNotices, getSaleNoticeDetail, getCaseByCaseNumber, searchProperties } require(court-auction-notice-search); async function main() { // 第 1 步公告列表。注意每次调用消耗一次预算调用间自动等待 2s 0~1s 抖动 const notices await searchSaleNotices({ date: 2026-04-27, courtCode: B000210 }); // 第 2 步把列表卡片对象含 raw原样传给详情 API if (notices.items.length 0) { const detail await getSaleNoticeDetail(notices.items[0]); for (const item of detail.items) { console.log(${item.caseNumber}${item.usage}${item.address}); console.log( 评估 ${item.appraisedPrice} 元 / 最低 ${item.minimumSalePrice} 元); } } // 第 3 步案件号直查2024-100001 也会自动规范成 2024타경100001 const caseInfo await getCaseByCaseNumber({ courtCode: B000210, caseNumber: 2024타경100001 }); if (!caseInfo.found) { // found:false / status:204案件不存在或非公开提示用户核对案件号与法院 console.error(未查到案件请核对案件号格式与法院代码); return; } console.log(案件名${caseInfo.caseInfo.caseName}共 ${caseInfo.schedule.length} 个拍卖日); // 第 4 步可选自由条件检索——江南区、5 亿以下、流拍 1 次以上 const props await searchProperties({ region: { sido: 서울특별시, sigungu: 11680 }, usage: { large: 건물, medium: 21200 }, priceRange: { min: 100000000, max: 500000000 }, flbdCount: { min: 1 } }); console.log(检索到 ${props.count} 件); } main().catch((error) { console.error(error); process.exitCode 1; });上例共 4 次调用默认 10 次预算内绰绰有余。searchProperties的响应会把韩文 raw 列规范化成英文键saNo→caseNumber、gamevalAmt/minmaePrice→appraisedPrice/minimumSalePrice、yuchalCnt→flbdCount、mulBigo→remarks等且同一字段提供别名如flbdCount与failedBidCount映射逻辑在 src/normalize.js。自定义客户端与 CLI 进阶默认节流是调用间至少 2000ms 0~1000ms 抖动 每会话 10 次 15s 超时。需要更保守时自行构造客户端并注入任意查询函数const { CourtAuctionHttpClient, searchSaleNotices } require(court-auction-notice-search); const client new CourtAuctionHttpClient({ minDelayMs: 3000, // 调用间隔拉到 3 秒 jitterMs: 2000, // 再叠加 0~2000ms 随机增量 maxCallsPerSession: 5, // 会话预算减半更保守 timeoutMs: 30000 // 单请求超时放宽到 30 秒 }); const notices await searchSaleNotices({ date: 2026-04-27, client });CLI 二进制名与 npm 包同名全局标志支持--json默认、--pretty、--include-rawfalse、--timeout-ms、--min-delay-ms、--max-calls# 法院事务所代码表动态60 court-auction-notice-search codes courts --pretty | head -40 # 静态代码表 court-auction-notice-search codes bid-types --pretty court-auction-notice-search codes usages --pretty court-auction-notice-search codes regions --pretty # 拍卖公告列表 court-auction-notice-search notices --date 2026-04 --court-code B000210 --bid-type date --pretty # 案件号直查 court-auction-notice-search case --court-code B000210 --case-number 2024타경100001 --pretty # 自由条件检索 court-auction-notice-search search --sido 서울특별시 --sigungu 11680 \ --usage-large 건물 --usage-medium 21200 \ --price-min 100000000 --price-max 500000000 \ --sale-from 2026-05-01 --sale-to 2026-05-20 --prettysearch子命令还支持--region 시도[:시군구raw[:읍면동raw]]、--appraised-min/max、--area-min/max、--flbd-min/max、--page-size 10|20|50|100等参数。浏览器 fallback 的 provider 可用KSKILL_BROWSER_PROVIDER、KSKILL_BROWSEROS_CDP_URL、KSKILL_ASIDE_COMMAND环境变量选择。架构与防护机制它为什么不会被封⚠️ 站点按 IP 做非常激进的机器人拦截以下机制全部围绕保护调用方 IP设计实现在 src/transport/http.js会话预热每次postJson先对对应入口页如/pgj/index.on?w2xPath...PGJ143M01.xmlpgjId143M01做一次 GET warmup收集会话 Cookie再发真实 POST客户端维护自己的 cookieJar同一预热页只预热一次。预算与抖动检查ensureBudget先查callsSoFar是否超过maxCallsPerSession默认 10超限抛BUDGET_EXCEEDED再计算等待时长 2000ms [0, 1000ms)随机增量 − 距上次调用的已流逝时间不足则补等。请求头伪装携带X-Requested-With: XMLHttpRequest、韩语Accept-Language: ko-KR,ko;q0.9,en;q0.8、按端点动态填充的Referer物件自由检索还附加submissionid: mf_wfm_mainFrame_sbm_selectGdsDtlSrch与sc-userid: SYSTEM模拟真实浏览器按钮提交。一级通道直接 HTTP公告列表、详情、案件查询的正常路径都不需要真实浏览器。fallback 触发条件极窄只有两种情况才转浏览器——UPSTREAM_ERROR且statusCode 400WAF 型拦截或BLOCKED且调用方显式传了fallbackOnBlocked: true{fallback:false}可完全关闭自动 fallback。浏览器两层降级链fallback 激活后优先连接用户已打开的 runtime 浏览器k-skill-browser-runtime自动探测macOS 依次试 Aside Browser REPL → BrowserOS GUI CDP → Chrome/Chromium CDP其他平台先试 BrowserOS全部不可达UNAVAILABLE/探测失败时降级到本地chromium.launch({headless})需要rebrowser-playwright或playwright-core均为 optionalDependency。清理安全边界连到 runtime 的浏览器是用户自有的fallback 结束只清理 adapter 创建的 page/context/tab 并断开 automation client绝不关闭 BrowserOS/Aside/Chrome 的 profile本地 launch 的浏览器则完整关闭 page/context/browser。PLAYWRIGHT_UNAVAILABLE模块未装与UNKNOWN_PROVIDERprovider 名错误fail-closed 立即抛错不会静默降级。稳定性参考同一 Playwright 客户端在 10~15 次间隔调用内稳定需要更高 burst 时调用间加 3~5 秒 sleep 并打开新客户端。错误处理与使用边界被封就停错误码触发条件处理建议BLOCKED响应data.ipcheck false站点明确封锁 IP错误携带upstreamUrl与upstreamPayload。不做自动重试避免延长封禁等待约 1 小时或换 IP/网络并把封禁事实原样告知用户BUDGET_EXCEEDED会话调用预算超限有意的安全阀。确有必要时--max-calls 20或调大maxCallsPerSession但必须同时提示封禁风险UPSTREAM_ERROR站点返回一般性错误最常见原因是会话过期或jdbnCd错误检查error.upstreamMessage从 warmup 重新开始NETWORK_ERROR超时/连接失败原始异常在error.cause中检查网络与--timeout-msPLAYWRIGHT_UNAVAILABLE想用浏览器 fallback 但模块未安装npm install rebrowser-playwright或playwright-core未安装时首次 HTTP 400 失败会原样抛出该用问今天/明天哪里有不动产拍卖、指定法院与日期的公告列表、期日/期间投标分开看、按案件号查进展、按区域 价格 流拍次数找物件。不该用动产汽车、工程机械拍卖v1 范围外单日全法院日程Workflow D另列 follow-up物件照片与评估书 PDF 下载follow-up投标书自动填写/提交——明确不支持。合规红线技能 SKILL.md 的 Hard rules 与 instruction.md 的诚实框架要求每次交互都声明数据是官网公开信息的原样转述实际投标前必须重新核对法院原始公告价格评估金额、最低卖出价、拍卖日期与场所均以公告时点为准可能因更正、撤回、延期而变化参考correctionCount、cancellationCount字段本技能是read-only不自动投标未经用户明确即时批准不执行支付、消息/邮件投递、最终提交、取消、公开张贴不在聊天、文件或 shell 参数中保存明文凭据不绕过法律边界、物理到场要求、CAPTCHA、身份核验或电子签名——遇到这些环节完成最远合法步骤后把下一步官方操作交给用户。自检清单与延伸阅读任务完成前对照这份自检清单源自指令文档的 Done when已向用户说明 IP 封禁风险以及仅供参考、投标前必须核对法院原始公告已展开拍卖公告返回含caseNumber/usage/address/appraisedPrice/minimumSalePrice的 JSON案件号直查若found:false已给出可执行的后续动作核对案件号格式与法院代码遇到封禁时立即停止没有自动重试任务结束后已告知用户剩余调用预算。建议按此顺序阅读仓库由浅入深court-auction-notice-search/instruction.md —— 完整指令文档边界、工作流、限流规则court-auction-notice-search/SKILL.md —— Agent 元数据与硬性安全规则packages/court-auction-notice-search/README.md —— Public API、端点表、错误模型、节流默认值packages/court-auction-notice-search/src/index.js —— 门面层参数校验、请求体构造、fallback 决策packages/court-auction-notice-search/src/transport/http.js —— 主传输warmup、预算、请求头、错误构造packages/court-auction-notice-search/src/transport/playwright.js —— 浏览器 fallback 客户端packages/court-auction-notice-search/src/codetables/index.js —— 代码表解析、层级匹配与 fail-openpackages/court-auction-notice-search/test/fixtures/ —— 响应样例夹具其中canonical-search-body.json由 capture-pgj151-submit.cjs 从真实浏览器提交捕获是理解请求体结构的最佳材料在包目录下执行npm run lintnode --check 全部源文件与npm run testnode --test含 index/normalize/transport/cli 四组即可本地验证。一句话收尾没有公开 API、IP 反爬激进、合规要求严格——court-auction-notice-search在慢即是稳的哲学下给出了一份可复用的政务数据技能范本直接 HTTP 降依赖、分层 fallback 保可用、限流预算封禁即停护 IP保守设计与明确边界同样值得你的下一个政府/金融查询技能借鉴。【免费下载链接】k-skill한국인을 위한 스킬 모음집 - 에이전트를 한국인으로项目地址: https://gitcode.com/GitHub_Trending/ks/k-skill创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考
上一篇/下一篇内容由系统自动关联
返回资讯列表 →