N8N으로 CU 편의점 크롤링 워크플로우 제작하기

소개

시도 동기

CU편의점을 가는 도중 매월 새롭게 바뀌는 CU 행사상품 크롤링을 자동화해보고 싶다는 생각이 들어 프로젝트를 시작했습니다.

N8N 초보여서 이 과정에서는 Claude + Context7 MCP 도움을 받아 바이브하게 n8n 워크플로우 만들기를 시도했습니다.

또한 크롤링은 이번이 처음입니다.

크롤링 결과 미리보기:

한국과 중국어의 이름 목록

워크플로우 미리보기:

인체의 다른 유형의 세포를 보여주는 다이어그램

진행 과정

작업환경

맥미니에 Docker를 이용한 N8N 셀프호스팅 환경을 구축하고 Cloudflare와 가비아에서 구매한 고정 도메인을 함께 사용했습니다. (참고 영상은 하단에 첨부)

N8N 크롤링 시도 방법

N8N과 크롤링 모두 처음 접하는 상황에서 다음과 같은 방법으로 문제를 해결했습니다:

Claude Desktop 앱에 Context7 MCP를 추가하고, Context7에 있는 N8N 문서를 기반으로 원하는 워크플로우 제작을 요청했습니다.

검색 엔진을 보여주는 웹 페이지의 스크린 샷

단계별 진행 과정

1단계: Claude에 N8N 워크플로우 생성 요청

실패 확률을 줄이기 위해 프롬프트를 신중하게 작성한 후 Claude Opus에 워크플로우 제작을 요청했습니다.

한국 웹 사이트의 스크린 샷

Claude에서 추가 정보가 필요하다는 응답을 받았습니다.

2단계: 부족한 정보 수집 및 전달

네트워크 탭에서 상품 [더보기] 버튼 클릭 시 응답 정보를 분석하여 필요한 코드와 페이로드를 수집했습니다.

중국어 텍스트가 포함 된 웹 사이트의 스크린 샷
한국 전자 상거래 웹 사이트의 스크린 샷

3단계: 워크플로우 JSON 파일 다운로드 및 N8N import

수집한 정보를 제공하니 CU 페이지 구조에 맞는 워크플로우를 JSON 파일로 받을 수 있었습니다.

한국 텍스트가있는 한국 웹 사이트의 스크린 샷

N8N의 새 워크플로우 화면에서 우측 상단의 'Import file'을 클릭하여 JSON 파일을 업로드하면 워크플로우가 시각적으로 표시됩니다.

프로세스의 흐름을 보여주는 다이어그램

4단계: 워크플로우 실행 및 문제 발견

첫 실행에서 상품 분류 1페이지 읽기는 성공했으나, 2페이지부터 읽지 못하는 문제가 발생했습니다.

문제의 핵심은 페이지 번호를 관리하는 pageCount 변수가 루프를 돌면서 제대로 증가하지 않는다는 점이었습니다. N8N에서 변수 사용법에 대한 이해 부족으로 Claude + Context7 MCP로도 몇 시간 동안 해결되지 않았습니다.

결국 이재엽 님의 도움을 받아 문제를 해결할 수 있었습니다.

5단계: 문제 해결 과정

실패한 시도들:

  1. 전역변수 사용: N8N에서 전역변수는 고정값으로만 사용 가능

  2. Set 노드 활용: 매 루프마다 pageCount 값을 각 노드에 전달하려 했으나 실패

성공한 해결책: pageCount를 배열로 처리

pageCount를 다음과 같이 배열로 선언:

중국어지도의 스크린 샷

Split Out 노드에서 pageCount 배열을 분리:

CSS 파일의 페이지 수의 예

HTTP 요청 시 배열 값을 순차적으로 사용하여 여러 페이지의 상품 목록을 성공적으로 가져올 수 있었습니다:

한국 웹 사이트에서 페이지 수 설정을 보여주는 화면

별도 루프 없이도 배열 길이만큼 자동으로 반복되는 N8N의 특성이 인상적이었습니다.

6단계: 데이터베이스 저장 및 크롤링 완료

테이블의 숫자와 문자 목록
인체의 다른 유형의 세포를 보여주는 다이어그램

결과 및 배운 점

  1. 정확한 정보 제공의 중요성

  2. 문제 해결 요청할 땐 데드라인 정하기

  3. 소규모 크롤링은 n8n 대규모 크롤링은 파이썬 사용이 적절

핵심 로직에서 이재엽님의 도움을 받았기 때문에 클로드를 이용해 바이브하게 n8n 워크플로우 만들기 목표가 100% 가능하다는 증명에는 실패했지만, Claude + Context7 MCP를 활용하여 약 80% 정도는 달성했다고 평가합니다.

워크플로우 생성과 중간 문제 해결 과정에서 N8N JSON 파일을 Claude에 제공하여 문제 해결을 요청했습니다. Claude + Context7 MCP로 핵심 문제 해결을 못한 점은 아쉬웠지만, 그래도 저보다는 훨씬 나은 성능을 보여주었습니다.

참고 자료

  1. N8N 셀프호스팅 (여분 컴퓨터(로컬서버) + Docker + Cloudflare + 고정도메인, 0~17분 내용):
    https://www.youtube.com/watch?v=DhuaKAW819s&t=374s

  2. Claude + Context7 MCP + N8N 워크플로우 제작:
    https://www.youtube.com/watch?v=3eDguAZOFsA

  3. N8N 크롤링 참고 영상 (이 영상은 제가 크롤링 성공하고 발견한 영상인데, 괜찮은 내용인 것 같아서 n8n 크롤링 관심 있으시다면 이 영상을 참고하시는 걸 추천드립니다. 저는 다음에 시간이 있다면 영상을 따라해볼 예정입니다.):
    https://www.youtube.com/watch?v=8nPcvjSILKo&t=1347s

7
5개의 답글

뉴스레터 무료 구독

👉 이 게시글도 읽어보세요