네이버 부동산 기반의 대한민국 부동산 매물 검색 / 단지 후보 탐색 / 단지 비교 / 채팅형 브리핑 / 가격 감시 스킬이다.
핵심 원칙:
이 스킬은 로컬 upstream clone을 래핑한다.
tmp/naverland-scrapper
재사용하는 주요 로직:
src.core.parser.NaverURLParser
src.core.services.response_capture.normalize_article_payload
src.utils.helpers.PriceConverter
src.utils.helpers.get_article_url
python skills/naver-real-estate-search/scripts/search_real_estate.py --self-test
역할:
python skills/naver-real-estate-search/scripts/build_candidate_seeds.py --print-summary
python skills/naver-real-estate-search/scripts/build_candidate_seeds.py --input skills/naver-real-estate-search/references/seoul-major-complexes.seed-input.json --output skills/naver-real-estate-search/references/candidate-seeds.generated.json --pause 0.1 --print-summary
역할:
candidate-seeds.json / candidate-cache.json / 네이버 검색 HTML 링크 추출을 조합해 candidate seed 초안 생성
confidence / verification_status 부여
blocked_reasons, candidate_pool, evidence에 흔적을 남겨 운영자가 후속 검증 가능하게 함
python skills/naver-real-estate-search/scripts/apply_generated_seeds.py --json
python skills/naver-real-estate-search/scripts/apply_generated_seeds.py --only-names "리센츠,은마" --json
python skills/naver-real-estate-search/scripts/apply_generated_seeds.py --apply-target --apply-cache --json
역할:
candidate-seeds.generated.json의 results[]를 읽어 운영 승격 가능 항목과 수동 검수 큐를 분리
--apply-target일 때만 references/candidate-seeds.json을 갱신
--apply-cache를 함께 쓰면 accepted 항목만 data/candidate-cache.json에 warm-cache
verified/weak-verified + complex_id + confidence 기준으로 승격 후보를 고르고, 나머지는 manual_review_queue에 정리
--only-names / --exclude-names로 일부 단지만 골라 검수 가능
python skills/naver-real-estate-search/scripts/chat_real_estate.py --query "잠실 리센츠 전세 30평대"
역할:
python skills/naver-real-estate-search/scripts/watch_real_estate.py add --name "리센츠 전세 30평대" --query "잠실 리센츠 전세 30평대" --target-max-price 950000000 --notify-on-new --notify-on-price-drop
python skills/naver-real-estate-search/scripts/watch_real_estate.py check --preview
python skills/naver-real-estate-search/scripts/watch_real_estate.py check --json
역할:
last_seen / events / dedupe 기반의 실사용형 감시 초안 제공
저장 파일:
skills/naver-real-estate-search/data/watch-rules.json
skills/naver-real-estate-search/data/candidate-cache.json
skills/naver-real-estate-search/references/candidate-seeds.json
python skills/naver-real-estate-search/scripts/search_real_estate.py --self-test
python skills/naver-real-estate-search/scripts/search_real_estate.py --query "잠실 리센츠랑 엘스 전세 비교 30평대" --parse-only
python skills/naver-real-estate-search/scripts/search_real_estate.py --query "서울 양천구 신월동 신월시영아파트 전세" --list-candidates --json
python skills/naver-real-estate-search/scripts/chat_real_estate.py --query "대치 은마 전세" --list-candidates
python skills/naver-real-estate-search/scripts/search_real_estate.py --seed-candidate-file
python skills/naver-real-estate-search/scripts/apply_generated_seeds.py --apply-target --apply-cache --json
python skills/naver-real-estate-search/scripts/search_real_estate.py --seed-candidate --complex-id 1147 --candidate-name "리센츠" --candidate-address "서울특별시 송파구 잠실동" --candidate-aliases "잠실 리센츠,잠실리센츠"
python skills/naver-real-estate-search/scripts/search_real_estate.py --show-cache --query "리센츠"
권장 순서:
build_candidate_seeds.py로 generated 초안을 만든다.
apply_generated_seeds.py로 preview해서 accepted / manual review를 확인한다.
--apply-target --apply-cache를 실행한다.
--seed-candidate로 수동 보강한다.
반복 조회가 필요한 실존 단지나 alias가 자주 흔들리는 단지(예: 신월시영아파트, 답십리두산위브)는 먼저 cache에 학습시켜 둔다. 아직 complex ID를 확보하지 못한 경우에도 manual_review_queue와 seed-input에 남겨 두면 후보 힌트 fallback에 활용된다.
python skills/naver-real-estate-search/scripts/search_real_estate.py --complex-id 1147 --trade-types 전세 --limit 10
python skills/naver-real-estate-search/scripts/search_real_estate.py --url "https://new.land.naver.com/complexes/1147" --trade-types 매매,전세 --json
python skills/naver-real-estate-search/scripts/chat_real_estate.py --query "잠실 리센츠 전세 30평대" --limit 8
python skills/naver-real-estate-search/scripts/chat_real_estate.py --query "잠실 리센츠와 잠실 엘스 전세 비교 30평대" --compare --candidate-limit 2
chat_real_estate.py --query ... 로 먼저 자연어 브리핑을 시도한다.
--list-candidates 로 후보를 1~3개만 보여준다.
--compare 로 비교한다.
search_real_estate.py --json 을 다시 호출한다.
watch_real_estate.py add/check 흐름으로 가격 감시를 연결한다.
현재 후보 탐색은 다음 순서로 동작한다.
candidate-seeds.json의 manual_review_queue + seoul-major-complexes.seed-input.json를 fallback reference로 조회해 힌트 후보를 반환
신월시영아파트 ↔ 신월시영 같은 축약/별칭 차이를 줄이기 위해 공백 제거 + suffix 제거 + alias 확장을 같이 사용한다.
alerts, snapshot, events, message_preview, summary 계층 활용
watch_real_estate.py check --preview 결과를 바로 붙이고, 구조화 후처리가 필요하면 --json을 사용
세부 설계/429 운영 지침/감시 schema/seed 예시는 다음 파일을 참고한다.
references/design.md
references/candidate-seeds.json
references/seoul-major-complexes.seed-input.json
references/candidate-seeds.generated.json
references/candidate-seed-builder.md
共 1 个版本