N8N : 법원경매 크롤링 자동화
“세종 오피스텔/아파트 매물정보를 자동으로 엑셀로 저장하기”
부동산 경매 사이트에 매일 들어가서 새 물건을 확인하시나요?
이번 글에서는 오픈소스 워크플로우 자동화 도구 n8n을 이용해 대법원 경매정보 사이트에서 조건에 맞는 매물을 자동으로 수집하고, 엑셀로 저장하는 시스템을 직접 구축해보겠습니다.
🧭 프로젝트 개요
🎯 목표
- 대법원 경매정보 사이트에서 “세종시 / 오피스텔 / 최저매각가 1억원 이하” 조건에 맞는 매물 조회
- 조건에 맞는 데이터를 Google sheet에 저장
⚙️ 사용 도구
- n8n (오픈소스 자동화 플랫폼)
- HTTP Request 노드 (POST 요청으로 경매 데이터 조회)
- Code 노드 (JavaScript) (필터링 및 데이터 정리)
- Google Sheet 노드 (결과 저장)
🧩 Step 1. 요청 구조 분석

대법원 경매정보 사이트(courtauction.go.kr)의 “상세조건검색”은 내부적으로
다음과 같은 POST 요청을 사용합니다 👇
https://www.courtauction.go.kr/pgj/pgjsearch/searchControllerMain.on
Body에는 검색 조건이 JSON 형태로 포함되며, 예시는 아래와 같습니다:
{"dma_pageInfo":{"pageNo":1,"pageSize":40,"bfPageNo":"","startRowNo":"","totalCnt":"","totalYn":"Y","groupTotalCount":""},
"dma_srchGdsDtlSrchInfo":{"rletDspslSpcCondCd":"","bidDvsCd":"000331","mvprpRletDvsCd":"00031R","cortAuctnSrchCondCd":"0004601","rprsAdongSdCd":"","rprsAdongSggCd":"","rprsAdongEmdCd":"","rdnmSdCd":"36","rdnmSggCd":"","rdnmNo":"","mvprpDspslPlcAdongSdCd":"","mvprpDspslPlcAdongSggCd":"","mvprpDspslPlcAdongEmdCd":"","rdDspslPlcAdongSdCd":"","rdDspslPlcAdongSggCd":"","rdDspslPlcAdongEmdCd":"","cortOfcCd":"B000210","jdbnCd":"","execrOfcDvsCd":"","lclDspslGdsLstUsgCd":"20000","mclDspslGdsLstUsgCd":"20100","sclDspslGdsLstUsgCd":"20110","cortAuctnMbrsId":"","aeeEvlAmtMin":"","aeeEvlAmtMax":"","lwsDspslPrcRateMin":"","lwsDspslPrcRateMax":"","flbdNcntMin":"","flbdNcntMax":"","objctArDtsMin":"","objctArDtsMax":"","mvprpArtclKndCd":"","mvprpArtclNm":"","mvprpAtchmPlcTypCd":"","notifyLoc":"on","lafjOrderBy":"","pgmId":"PGJ151F01","csNo":"","cortStDvs":"3","statNum":1,"bidBgngYmd":"20251005","bidEndYmd":"20251019","dspslDxdyYmd":"","fstDspslHm":"","scndDspslHm":"","thrdDspslHm":"","fothDspslHm":"","dspslPlcNm":"","lwsDspslPrcMin":"","lwsDspslPrcMax":"100000000","grbxTypCd":"","gdsVendNm":"","fuelKndCd":"","carMdyrMax":"","carMdyrMin":"","carMdlNm":""}}
📍 요약
- 세종시 코드: “rdnmSdCd”: “36”
- 매물 대분류/중분류/소분류 코드 : “lclDspslGdsLstUsgCd”/”mclDspslGdsLstUsgCd”/”sclDspslGdsLstUsgCd”
- 최대 금액: 1억 원 (lwsDspslPrcMax)
⚙️ Step 2. n8n에서 HTTP Request 노드 구성
1️⃣ 노드 이름: Fetch Auction Data
- Method: POST
- URL: https://www.courtauction.go.kr/pgj/pgjsearch/searchControllerMain.on
- Headers:
- {
- “Content-Type”: “application/json;charset=UTF-8”,
- “Accept”: “application/json”,
- “Origin”: “https://www.courtauction.go.kr”,
- “Referer”: “https://www.courtauction.go.kr/pgj/index.on?w2xPath=/pgj/ui/pgj100/PGJ151F00.xml”
- }
- Body: 위 JSON
2️⃣ 결과는 HTML 또는 JSON 형태로 반환되므로, 다음 노드에서 파싱합니다.
💻 Step 3. Code 노드 (데이터 필터링)
Code 노드에서 아래와 같이 작성합니다 👇
// n8n Code node (JavaScript)
// 입력: 대법원 경매정보 API의 JSON 결과
// 출력: 필요한 필드만 정리된 리스트
// 1️⃣ 입력 데이터 가져오기
const input = $input.all()[0].json.data.dlt_srchResult;
// 3️⃣ 필요한 항목만 추출
const output = input.map(item => ({
사건번호: item.printCsNo || "",
부동산유형: item.dspslUsgNm || "",
소재지: item.bgPlaceRdAllAddr || "",
주소지 : item.hjguSido +" "+ item.hjguDong +" "+ item.daepyoLotno +" "+ item.buldNm +" "+ item.buldList,
감정가: item.gamevalAmt + "원" || "",
최저매각가: item.notifyMinmaePrice1 + "원" || "",
유찰수 : item.yuchalCnt+"회",
감정가대비율: item.notifyMinmaePriceRate1 + "%" || "",
매각기일: item.maeGiil || "",
관할법원: item.jpDeptNm + " - 전화번호 : "+ item.tel || "",
비고 : item.mulBigo || ""
}));
// 4️⃣ 결과 반환
return output.map(data => ({ json: data }));
✉️ Step 4. Fillter 노드 구성
- “부동산 유형”에 [“아파트”, “오피스텔”] 단어가 포함된 경우만 저장되도록 설정
- “부동산 유형” contains “아파트” or “부동산 유형” contains “오피스텔”
✉️ Step 5. Google Sheet 노드 구성
- Action: Append or update row in sheet
- Mapping Column Mode: Automatically(Code 노드와 동일하게 Google sheet 설정)
- Column to match on : 사건번호
🚀 완성 플로우
[Cron] → [HTTP Request] → [Code] → [Filter] → [Google Sheet]
n8n 서버가 켜져 있기만 하면, 매일 아침 자동으로 세종 오피스텔 경매 정보를 받아볼 수 있습니다.
💡 이를 확장하면
- 지역을 여러 곳으로 늘리거나
- Google Sheet에 자동 기록하거나
- Telegram, Slack 알림으로 바꿀 수도 있습니다.
