Skip to content

humanist96/cli-anything-naver-land

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

13 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

cli-anything-naver-land

네이버 부동산 매물 검색을 터미널에서. 전국 248개 지역, 자연어 한 줄로.

Python Tests Regions License

Click Output REPL Speed


Why CLI for Real Estate?

GUI 기반 부동산 검색은 반복 작업에 비효율적입니다. CLI는 자동화, 파이프라이닝, AI 에이전트 연동에 최적화된 인터페이스입니다.

GUI (네이버 부동산 앱) CLI (이 도구)
반복 검색 매번 클릭/스크롤 한 줄 명령어 재실행
데이터 추출 수동 복사 export csv/json/excel
조건 조합 제한된 필터 UI 자유로운 필터 조합
AI 에이전트 불가 --json 플래그로 즉시 연동
자동화 불가 셸 스크립트, cron, 파이프라인

Key Features

기능 설명 성능
자연어 검색 nlq 강남 30평대 매매 10억 이하 한 줄로 완료
고속 단지 검색 검색 리다이렉트 → hscpNo 즉시 조회 ~15초 (기존 ~150초)
전국 248개 지역 17개 시/도, 모든 구/군/시 서울은 -c 생략 가능
확장 필터 평형, 가격, 층수, 날짜, 태그 복수 조건 조합
3종 내보내기 CSV, JSON, Excel 데이터 분석 즉시 연결
대화형 REPL 인터랙티브 연속 검색 세션/히스토리/undo
Anti-blocking UA 로테이션, 세션 관리, 적응형 딜레이 안정적 대량 수집
결과 캐시 동일 조건 5분 TTL 재검색 즉시 반환

Architecture

System Architecture

High-Speed Search: 3-Step Fallback

3-Step Fallback Search

Speed Comparison


Quick Start

Installation

git clone https://github.com/humanist96/cli-anything-naver-land.git
cd cli-anything-naver-land
pip install -e .

macOS 사용자: pip install~/Library/Python/3.x/bin/에 스크립트를 설치합니다. cli-anything-naver-land 명령어가 안 되면 PATH를 추가하세요:

echo 'export PATH="$HOME/Library/Python/3.9/bin:$PATH"' >> ~/.zshrc
source ~/.zshrc

Python 버전에 따라 3.93.10, 3.11 등으로 변경하세요.

다른 설치 방법
# 바로 설치
pip install git+https://github.com/humanist96/cli-anything-naver-land.git

# Excel 내보내기 포함
pip install -e ".[excel]"

30 Seconds Demo

# 자연어 검색 — 가장 쉬운 방법
cli-anything-naver-land nlq 강남 30평대 매매 10억 이하

# 단지명 고속 검색 — 구 지정 불필요
cli-anything-naver-land search complex -n 목동7단지 -t 매매

# 전국 검색
cli-anything-naver-land search region -c 부산 -d 해운대구 -t 전세

# JSON 출력 (AI 에이전트 연동)
cli-anything-naver-land --json search region -d 종로구 -t 매매

Usage

자연어 검색 (NLQ)

한국어로 자연스럽게 검색합니다. 파서가 거래유형, 지역, 평형, 가격, 정렬, 내보내기를 자동 인식합니다.

cli-anything-naver-land nlq 강남 30평대 매매 10억 이하
cli-anything-naver-land nlq 부산 해운대 전세 84㎡ 이상
cli-anything-naver-land nlq 서초구 반포자이 매매 제일 싼거
cli-anything-naver-land nlq 종로구 전체 매물 csv로 저장
cli-anything-naver-land nlq 강남구 매매 5억~15억
자연어 파서 인식 키워드
카테고리 키워드
거래유형 매매, 전세, 월세, 단기임대
평형 소형, 20평대, 30평대, 중대형
가격 10억 이하, 5억 이상, 5억~15억
면적 84㎡ 이상, 30평 이하
층수 20층 이상, 5층 이하
정렬 싼, 저렴한, 최신, 넓은
내보내기 csv, json, excel, 저장, 다운로드

지역 검색

# 서울 (구 이름만으로 검색)
cli-anything-naver-land search region -d 강남구 -t 매매

# 전국 (-c로 시/도 지정)
cli-anything-naver-land search region -c 부산시 -d 해운대구 -t 매매
cli-anything-naver-land search region -c 경기도 -d 분당구 -t 전세

참고: 서울은 -c 없이도 자동 검색됩니다. 다른 시/도는 -c로 지정하세요.

단지명 검색 (High-Speed)

# 단지명만으로 즉시 검색 — 구 지정 불필요
cli-anything-naver-land search complex -n 목동7단지
cli-anything-naver-land search complex -n 도곡렉슬
cli-anything-naver-land search complex -n 래미안목동아델리체

# 구 지정 시 fallback 보장
cli-anything-naver-land search complex -n 래미안 -d 강남구
cli-anything-naver-land search complex -n 엘시티 -d 해운대구 -c 부산시

필터

cli-anything-naver-land search region -d 강남구 -t 매매 \
  --type 30평대 --min-price 5억 --max-price 15억 --floor 10+ \
  --tag 역세권 --since 2026-03-01

내보내기

cli-anything-naver-land export csv -o 강남_매매.csv
cli-anything-naver-land export json -o 강남_매매.json
cli-anything-naver-land export excel -o 강남_매매.xlsx

REPL Mode (Interactive)

인자 없이 실행하면 대화형 모드(REPL) 로 진입합니다. 터미널(iTerm, Terminal.app 등)에서 직접 실행해야 합니다.

참고: REPL은 키보드 입력이 필요한 인터랙티브 모드이므로, 반드시 터미널에서 직접 실행하세요. 파이프 입력이나 비대화형 환경(CI, IDE 내장 터미널 등)에서는 일반 모드(cli-anything-naver-land search ...)를 사용하세요.

# 터미널에서 실행
cli-anything-naver-land
╭──────────────────────────────────────────────────────╮
│ ◆  cli-anything · Naver Land                         │
│    v1.0.0                                            │
│                                                      │
│    Type help for commands, quit to exit              │
╰──────────────────────────────────────────────────────╯

◆ naver_land ❯ search complex -n 목동7단지 -t 매매
  단지명            | 거래 | 면적             | 분류   | 가격       | 층
  ------------------+------+------------------+--------+------------+-------
  목동신시가지7단지 | 매매 | 30.6평 (101.2㎡) | 30평대 | 40억       | 7/15
  목동신시가지7단지 | 매매 | 20.1평 (66.6㎡)  | 20평대 | 28억 5,000 | 10/15
  ...
  총 54건

◆ naver_land ❯ nlq 강남 30평대 매매 10억 이하
  (검색 → 필터 → 결과 출력)

◆ naver_land ❯ export csv -o 결과.csv
  (내보내기 완료)

◆ naver_land ❯ quit

REPL의 장점:

  • 세션/쿠키 재사용으로 연결 시간 절약
  • 검색 → 필터 → 내보내기 연속 작업
  • 명령 히스토리, undo/redo 지원
명령어 설명
nlq <자연어> 자연어 검색
search region -d <구> 지역 검색
search complex -n <단지명> 단지명 고속 검색
search cities 시/도 목록
search districts [-c <시/도>] 구/군 목록
search url [-a 매물번호] 매물/지도 URL 생성
filter apply --type 30평대 필터 적용
filter clear 필터 초기화
export csv -o <파일> 내보내기
session history 명령 히스토리
session undo / redo 되돌리기

Demonstration

실제 검색 결과 예시:

$ cli-anything-naver-land search complex -n 목동7단지 -t 매매

  단지명            | 거래 | 면적             | 분류   | 가격       | 층
  ------------------+------+------------------+--------+------------+-------
  목동신시가지7단지 | 매매 | 30.6평 (101.2㎡) | 30평대 | 40억       | 7/15
  목동신시가지7단지 | 매매 | 30.6평 (101.2㎡) | 30평대 | 36억 5,000 | 8/15
  목동신시가지7단지 | 매매 | 20.1평 (66.6㎡)  | 20평대 | 28억 5,000 | 10/15
  목동신시가지7단지 | 매매 | 16.3평 (53.88㎡) | 소형   | 24억       | 10/15
  ...

  총 54건  ⏱ 15.2초
$ cli-anything-naver-land search region -d 종로구 -t 매매

  종로구 검색 결과
  ──────────────────────────────
  총 매물:    576건
  가격 범위:  2억 3,000 ~ 85억
  평균 가격:  15억 4,200
  평형 분포:  소형 89건 | 20평대 201건 | 30평대 178건 | 중대형 108건

Reference

시/도 목록 (17개)
시/도 구/군 수 약칭
서울특별시 25 서울, 서울시
부산광역시 16 부산, 부산시
대구광역시 9 대구, 대구시
인천광역시 10 인천, 인천시
광주광역시 5 광주, 광주시
대전광역시 5 대전, 대전시
울산광역시 5 울산, 울산시
세종특별자치시 1 세종, 세종시
경기도 42 경기, 경기도
강원특별자치도 18 강원, 강원도
충청북도 14 충북, 충청북도
충청남도 16 충남, 충청남도
전북특별자치도 15 전북, 전라북도
전라남도 22 전남, 전라남도
경상북도 23 경북, 경상북도
경상남도 22 경남, 경상남도
제주특별자치도 2 제주, 제주도
거래유형 / 부동산유형 / 정렬

거래유형 (-t)

코드
매매 A1
전세 B1
월세 B2
단기임대 B3

부동산유형 (-p)

설명
APT 아파트 (기본값)
VL 빌라/연립
OPST 오피스텔
OR 주거용오피스텔
ABYG 아파트분양권
JGC 재건축
DDDGG 단독/다가구

정렬 (--sort)

설명
rank 추천순 (기본값)
prc 가격순
spc 면적순
date 최신순
필터 옵션 전체
옵션 설명 예시
--type 평형 분류 --type 30평대
--min-price 최소 가격 --min-price 5억
--max-price 최대 가격 --max-price 15억
--min-area 최소 면적(㎡) --min-area 84
--max-area 최대 면적(㎡) --max-area 120
--floor 층수 필터 --floor 10+, --floor 3-10
--since 확인일 시작 --since 2026-03-01
--until 확인일 끝 --until 2026-03-31
--tag 태그 (복수 가능) --tag 역세권 --tag 신축
--name-contains 단지명 포함 --name-contains 래미안

FAQ

"구"를 빼고 검색해도 되나요?

네. 강남강남구, 해운대해운대구, 분당성남시 분당구로 자동 인식됩니다.

"중구"처럼 여러 도시에 있는 지역은?

자동 감지하여 선택을 요청합니다. -c 부산처럼 시/도를 지정하면 해당 도시의 중구를 검색합니다.

⚠ '중구'이(가) 여러 도시에 있습니다:
  [1] 서울시 중구  [2] 부산시 중구  [3] 대구시 중구 ...
→ -c 옵션으로 시/도를 지정하세요 (예: -c 부산)
검색 속도가 느려요

네이버 API 부하 방지를 위한 딜레이가 포함되어 있습니다. 단지명 검색(search complex -n)은 검색 리다이렉트를 활용해 ~15초로 완료됩니다. 동일 조건 재검색은 5분 캐시로 즉시 반환됩니다.

Excel 내보내기가 안 돼요
pip install openpyxl
# 또는
pip install -e ".[excel]"

Tech Stack

Component Technology
CLI Framework Click
HTTP Client Requests + custom anti-blocking
Data Model Python dataclasses (frozen, immutable)
Testing pytest (82 tests, 100% pass)
Export CSV, JSON, openpyxl (Excel)

License

MIT License

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors

Languages