sh-notice-search

Compare original and translation side by side

🇺🇸

Original

English
🇨🇳

Translation

Chinese

SH Notice Search

SH公告搜索

What this skill does

本技能的功能

서울주택도시개발공사(SH,
www.i-sh.co.kr
)의 공고 및 공지 공개 HTML 게시판을 직접 읽어 청약·주택 공고 목록과 상세 본문, 첨부파일 메타데이터를 JSON으로 정리한다.
  • 키워드로 SH 공고/공지 목록을 검색한다.
  • 공식 게시판 분류(주택임대, 주택분양, 주택매입/주거복지, 토지, 상가/공장 등)를 선택한다.
  • 상세 페이지에서 본문, 담당부서, 등록일, 조회수, 실제 첨부파일명을 추출한다.
  • 첨부는 아이콘 템플릿이 아니라
    existFile('N')
    onclick이 달린 실제 첨부 앵커와
    downList
    메타데이터를 기준으로 추출한다.
청약 신청, 서류 제출, 로그인 필요한 마이페이지 조회, 결제, 알림 발송은 하지 않는다.
首尔住宅城市开发公社(SH,
www.i-sh.co.kr
)的公告及通知公开HTML公告栏直接读取,将认购·住宅公告列表、详细正文、附件元数据整理为JSON格式。
  • 通过关键词搜索SH公告/通知列表。
  • 选择官方公告栏分类(住宅租赁、住宅分售、住宅购买/居住福利、土地、商铺/工厂等)。
  • 从详情页提取正文、负责部门、注册日期、浏览量、实际附件文件名。
  • 附件提取基于带有
    existFile('N')
    onclick事件的实际附件锚点和
    downList
    元数据,而非图标模板。
不处理认购申请、文件提交、需登录的我的页面查询、支付、通知发送等操作。

When to use

使用场景

  • "SH 행복주택 공고 찾아줘"
  • "서울주택도시개발공사 매입임대 공고 보여줘"
  • "SH 공고 seq 304371 상세와 첨부파일 알려줘"
  • "SH 분양 공고 최신 목록 조회"
  • "帮我查找SH幸福住宅公告"
  • "展示首尔住宅城市开发公社的购买租赁公告"
  • "告诉我SH公告seq 304371的详情和附件信息"
  • "查询SH分售公告最新列表"

Prerequisites

前置条件

  • 인터넷 연결
  • Node.js 18+
  • 이 저장소의
    sh-notice-search
    npm package 또는 동일 로직
  • 网络连接
  • Node.js 18+
  • 本仓库的
    sh-notice-search
    npm包或相同逻辑的代码

Public access path discovered

已发现的公开访问路径

Primary source: official SH public HTML board

主要来源:SH官方公开HTML公告栏

  • default rent list:
    https://www.i-sh.co.kr/app/lay2/program/S1T294C297/www/brd/m_247/list.do?multi_itm_seq=2
  • default rent detail:
    https://www.i-sh.co.kr/app/lay2/program/S1T294C297/www/brd/m_247/view.do?multi_itm_seq=2&seq=<seq>
  • title keyword search: add
    srchWord=<keyword>&srchTp=0
  • content keyword search: add
    srchWord=<keyword>&srchTp=1
  • fixed board page size: 10 rows per page; use
    page
    for pagination.
Discovery result: direct unauthenticated fetches from
www.i-sh.co.kr
return list/detail HTML. A live smoke on 2026-05-15 showed
srchWord=행복주택
without
srchTp
returned the full rent board count, while
srchTp=0
narrowed the result set. Therefore the client always sends
srchTp
when a keyword is present.
No
k-skill-proxy
route is used because this upstream is public and does not require an API key.
  • 默认租赁列表:
    https://www.i-sh.co.kr/app/lay2/program/S1T294C297/www/brd/m_247/list.do?multi_itm_seq=2
  • 默认租赁详情:
    https://www.i-sh.co.kr/app/lay2/program/S1T294C297/www/brd/m_247/view.do?multi_itm_seq=2&seq=<seq>
  • 标题关键词搜索:添加
    srchWord=<keyword>&srchTp=0
  • 内容关键词搜索:添加
    srchWord=<keyword>&srchTp=1
  • 固定公告栏每页条数:每页10条;使用
    page
    参数进行分页。
发现结果:直接从
www.i-sh.co.kr
进行未认证请求可返回列表/详情HTML。2026年5月15日的实时测试显示,不带
srchTp
srchWord=행복주택
返回了完整的租赁公告栏数据,而
srchTp=0
缩小了结果范围。因此客户端在存在关键词时始终发送
srchTp
参数。
未使用
k-skill-proxy
路由,因为该上游服务是公开的,不需要API密钥。

Supported category aliases

支持的分类别名

Input aliasesOfficial tab
rent
,
임대
,
주택임대
주택임대 (
multi_itm_seq=2
)
sale
,
분양
,
주택분양
주택분양 (
multi_itm_seq=1
)
purchase
,
매입
,
매입임대
,
welfare
,
주거복지
주택매입 (
multi_itm_seq=512
)
land
,
토지
토지
commercial
,
상가
,
공장
상가/공장
compensation
,
보상
,
이주
보상/이주
design
,
현상설계
현상설계
etc
,
기타
기타
all
,
전체
전체
주거복지
는 SH 공고 및 공지의 공개 탭명이 아니라 사용자 친화 alias이며, 현재는 SH의 공개
주택매입
탭으로 매핑한다. 답변할 때는 이 매핑을 밝힌다.
输入别名官方标签页
rent
,
임대
,
주택임대
住宅租赁 (
multi_itm_seq=2
)
sale
,
분양
,
주택분양
住宅分售 (
multi_itm_seq=1
)
purchase
,
매입
,
매입임대
,
welfare
,
주거복지
住宅购买 (
multi_itm_seq=512
)
land
,
토지
土地
commercial
,
상가
,
공장
商铺/工厂
compensation
,
보상
,
이주
补偿/搬迁
design
,
현상설계
详细设计
etc
,
기타
其他
all
,
전체
全部
주거복지
并非SH公告及通知的公开标签页名称,而是用户友好的别名,目前映射到SH公开的
住宅购买
标签页。回复时需说明该映射关系。

Workflow

工作流程

1. Search notices

1. 搜索公告

js
const { searchNotices } = require("sh-notice-search")

const result = await searchNotices({
  keyword: "행복주택",
  category: "임대",
  page: 1,
  limit: 5
})

console.log(result.items)
CLI:
bash
node packages/sh-notice-search/src/cli.js 행복주택 --category 임대 --limit 5
node packages/sh-notice-search/src/cli.js 매입임대 --category 주거복지 --status 진행
Returned list fields include:
  • seq
  • title
  • department
  • registered_date
  • views
  • is_new
  • category
    ,
    category_name
  • status
    ,
    status_basis
  • detail_url
js
const { searchNotices } = require("sh-notice-search")

const result = await searchNotices({
  keyword: "행복주택",
  category: "임대",
  page: 1,
  limit: 5
})

console.log(result.items)
命令行界面(CLI):
bash
node packages/sh-notice-search/src/cli.js 행복주택 --category 임대 --limit 5
node packages/sh-notice-search/src/cli.js 매입임대 --category 주거복지 --status 진행
返回的列表字段包括:
  • seq
  • title
  • department
  • registered_date
  • views
  • is_new
  • category
    ,
    category_name
  • status
    ,
    status_basis
  • detail_url

2. Fetch detail

2. 获取详情

js
const { getNoticeDetail } = require("sh-notice-search")

const detail = await getNoticeDetail({ seq: "304371", category: "임대" })
console.log(detail.notice.content_text)
console.log(detail.notice.attachments)
CLI:
bash
node packages/sh-notice-search/src/cli.js --seq 304371 --category 임대
Attachment fields:
  • filename
  • file_seq
  • file_size
  • file_type
  • preview_url
    (official SH preview/converter URL)
Direct download URLs are intentionally not returned. Hand off
detail_url
or
preview_url
to the user's browser.
js
const { getNoticeDetail } = require("sh-notice-search")

const detail = await getNoticeDetail({ seq: "304371", category: "임대" })
console.log(detail.notice.content_text)
console.log(detail.notice.attachments)
命令行界面(CLI):
bash
node packages/sh-notice-search/src/cli.js --seq 304371 --category 임대
附件字段包括:
  • filename
  • file_seq
  • file_size
  • file_type
  • preview_url
    (SH官方预览/转换URL)
有意不返回直接下载URL。将
detail_url
preview_url
交给用户的浏览器处理。

3. Interpret status conservatively

3. 谨慎解读状态

The SH public board list does not expose a first-class status field like
접수중
/
마감
. The package can filter by
status
, but it is a title-text classifier:
  • open
    /
    진행
    : titles with 모집공고, 입주자 모집, 신청, 접수, 공고
  • closed
    /
    마감
    : titles with 마감, 계약결과, 결과, 완료, 종료
  • announced
    /
    당첨자
    : titles with 당첨, 발표
When answering, disclose that status is inferred from the title unless the detailed 공고문 body states exact dates.
SH公开公告栏列表未暴露
접수중
/
마감
这类一级状态字段。本包可按
status
过滤,但这是基于标题文本的分类器:
  • open
    /
    진행
    : 标题包含"招募公告"、"入住者招募"、"申请"、"受理"、"公告"
  • closed
    /
    마감
    : 标题包含"截止"、"合同结果"、"结果"、"完成"、"结束"
  • announced
    /
    당첨자
    : 标题包含"中奖"、"公布"
回复时需说明,除非详细公告正文中明确标注日期,否则状态是从标题推断而来。

Done when

完成标准

  • Official SH list/detail URLs were queried directly from the user machine.
  • Keyword searches include
    srchTp
    so
    srchWord
    is not ignored.
  • Pagination uses
    page
    and recognizes the fixed 10-row board page size.
  • Attachments are extracted from actual
    existFile()
    anchors/downList metadata, not extension icon templates.
  • Public source URLs are shown, and login/application automation is avoided.
  • 用户设备直接查询SH官方列表/详情URL。
  • 关键词搜索包含
    srchTp
    参数,避免
    srchWord
    被忽略。
  • 分页使用
    page
    参数,并识别公告栏固定的每页10条规则。
  • 附件从实际的
    existFile()
    锚点/downList元数据提取,而非扩展名图标模板。
  • 显示公开源URL,避免登录/申请自动化操作。

Failure modes

失败场景

  • SH can change board paths, table markup, JavaScript functions, or
    downList
    structure; parsing may become partial or fail.
  • IP-rate-limit, NetFunnel throttling, maintenance pages, or temporary 4xx/5xx responses can block live fetches. Do not bypass CAPTCHA/login/queue protections.
  • srchWord
    without
    srchTp
    is known to be ignored by the SH board; always send
    srchTp=0
    for title or
    srchTp=1
    for content.
  • pageSize
    larger than 10 does not make SH return more rows. Use
    page
    for additional results.
  • Attachment preview URLs may require browser handoff and can be governed by SH's current direct-link/download policy.
  • Status is inferred from title text because the public list lacks an explicit status column.
  • SH可能修改公告栏路径、表格标记、JavaScript函数或
    downList
    结构;解析可能部分失效或完全失败。
  • IP速率限制、NetFunnel限流、维护页面或临时4xx/5xx响应可能阻止实时请求。请勿绕过验证码/登录/队列保护。
  • SH公告栏已知会忽略不带
    srchTp
    srchWord
    ;标题搜索始终发送
    srchTp=0
    ,内容搜索发送
    srchTp=1
  • pageSize
    大于10时,SH不会返回更多数据。使用
    page
    参数获取更多结果。
  • 附件预览URL可能需要交给浏览器处理,且受SH当前直接链接/下载政策约束。
  • 由于公开列表缺少明确的状态列,状态是从标题文本推断而来。

Notes

注意事项

  • Read-only lookup only.
  • No proxy, no API key, no secrets.
  • Do not automate 청약 신청, 로그인, 서류 제출, payment, or 마이페이지 flows.
  • 仅支持只读查询。
  • 无需代理、API密钥或机密信息。
  • 请勿自动化认购申请、登录、文件提交、支付或我的页面流程。