AI-Cursor-Scraping-Assistant
요약
Cursor AI와 MCP(Model Context Protocol)를 결합하여 웹 스크래퍼를 자동으로 생성하는 도구입니다. Cursor Rules와 MCP 도구를 통해 웹사이트 구조 분석부터 Scrapy 스파이더 생성까지의 과정을 자동화합니다.
핵심 포인트
- Cursor Rules를 통한 AI 동작 가이드 제공
- MCP를 활용한 XPath 선택자 및 웹 페이지 분석 강화
- Scrapy 및 Camoufox 기반의 스크래퍼 생성 지원
- 안티 봇 탐지 및 현대적 웹 프레임워크 분석 기능 포함
Cursor AI와 MCP (Model Context Protocol)를 활용하여 다양한 유형의 웹사이트를 위한 웹 스크래퍼 (Web Scraper)를 쉽게 생성할 수 있는 강력한 도구입니다. 이 프로젝트는 최소한의 노력으로 웹사이트를 빠르게 분석하고 적절한 Scrapy 또는 Camoufox 스크래퍼를 생성할 수 있도록 도와줍니다.
이 프로젝트는 두 가지 주요 구성 요소를 포함합니다:
Cursor Rules - Cursor AI에게 웹사이트를 분석하고 다양한 유형의 Scrapy 스파이더 (Spider)를 만드는 방법을 가르치는 규칙 세트
MCP Tools - 웹 스크래핑 작업을 위한 Cursor의 기능을 강화하는 Model Context Protocol 도구 모음
- Cursor AI 설치됨
- Python 3.10+ 설치됨
- 웹 스크래핑 (Web Scraping) 개념에 대한 기본 지식
이 저장소를 로컬 머신으로 클론 (Clone) 하세요:
git clone https://github.com/TheWebScrapingClub/AI-Cursor-Scraping-Assistant.git
cd AI-Cursor-Scraping-Assistant
필요한 종속성 (Dependencies)을 설치하세요:
pip install mcp camoufox scrapy
Camoufox를 사용할 계획이라면, 브라우저 바이너리 (Browser Binary)를 가져와야 합니다:
python -m camoufox fetch
MCP 서버는 Cursor AI가 웹 페이지를 분석하고 XPath 선택자 (XPath Selector)를 생성하는 데 도움이 되는 도구를 제공합니다. MCP 서버를 시작하려면:
- MCPfiles 디렉토리로 이동합니다:
cd MCPfiles
-
xpath_server.py에 있는CAMOUFOX_FILE_PATH를 로컬의Camoufox_template.py파일을 가리키도록 업데이트합니다. -
MCP 서버를 시작합니다:
python xpath_server.py
- Cursor에서 설정(Settings)을 구성하거나 MCP 패널을 사용하여 MCP 서버에 연결합니다.
cursor-rules 디렉토리에는 Cursor AI에게 웹사이트를 분석하고 다양한 유형의 스크래퍼를 만드는 방법을 가르치는 규칙이 포함되어 있습니다. 이 규칙들은 Cursor에서 프로젝트를 열 때 자동으로 로드됩니다.
cursor-rules 디렉토리에는 웹 스크래퍼를 생성할 때 Cursor의 동작을 안내하는 MDC (Markdown Configuration) 파일 세트가 포함되어 있습니다:
이 규칙은 스크래퍼를 생성하기 전의 초기 설정 작업을 처리합니다:
pwd를 사용하여 현재 프로젝트의 전체 경로를 가져옵니다.- 나중에 다른 규칙에서 사용할 수 있도록 경로를 컨텍스트 (Context)에 저장합니다.
- 진행하기 전에 예비 작업의 실행을 확인합니다.
이 종합적인 규칙은 웹사이트 분석을 위해 Cursor를 안내합니다:
- 구축할 Scrapy 스파이더 (Spider) 유형 식별 (PLP, PDP 등)
- 홈페이지 HTML 및 쿠키 (Cookies) 가져오기 및 저장
- HTML 분석을 단순화하기 위해 MCP 도구를 사용하여 CSS 제거
- 안티 봇 (Anti-bot) 보호 기능(Akamai, Datadome, PerimeterX 등)을 위한 쿠키 확인
- PLP 스크레이퍼의 경우: 카테고리 페이지를 가져오고, 구조를 분석하며, JSON 데이터를 탐색
- PDP 스크레이퍼의 경우: 상품 페이지를 가져오고, 구조를 분석하며, JSON 데이터를 탐색
- schema.org 마크업 및 Next.js와 같은 현대적 프레임워크 탐지
이 규칙은 스크레이퍼 생성을 위한 실행 흐름을 제공합니다:
- 따라야 할 단계별 순서 개요 작성
- 올바른 순서로 다른 규칙 파일 참조
- 스크레이퍼 생성 전에 필수 선행 작업이 완료되었는지 확인
- 코드를 생성하기 전에 Cursor가 웹사이트를 분석하도록 안내
이 광범위한 규칙에는 Scrapy 베스트 프랙티스 (Best practices)가 포함되어 있습니다:
- 권장되는 코드 구성 및 디렉토리 구조 정의
- 파일 명명 규칙 및 모듈 구성에 대한 세부 사항
- 컴포넌트 아키텍처 (Component architecture) 가이드라인 제공
- 코드 분할 및 재사용을 위한 전략 제공
- 성능 최적화 권장 사항 포함
- 보안 관행, 에러 처리 (Error handling) 및 로깅 (Logging) 다룸
- 구체적인 구문 예시 및 코드 스니펫 (Code snippets) 제공
이 규칙은 생성할 수 있는 다양한 유형의 스크레이퍼를 정의합니다:
E-commerce PLP: 데이터 구조, 필드 정의 및 구현 단계에 대한 세부 정보
E-commerce PDP: 데이터 구조, 필드 정의 및 구현 단계에 대한 세부 정보
- 모든 스크레이퍼 유형에 대한 필드 매핑 (Field mapping) 가이드라인
- 각 유형의 스크레이퍼를 생성하기 위한 단계별 지침
- 기본 설정 권장 사항
- 다양한 보호 시스템에 대한 안티 봇 (Anti-bot) 대응책
AI-Cursor-Scraping-Assistant를 사용하는 방법은 다음과 같습니다:
- Cursor AI에서 프로젝트를 엽니다
- MCP 서버가 실행 중인지 확인합니다
- Cursor에게 다음과 같은 프롬프트로 스크레이퍼 생성을 요청합니다:
Write an e-commerce PLP scraper for the website gucci.com(gucci.com 웹사이트를 위한 이커머스 PLP 스크레이퍼를 작성해줘)
그러면 Cursor는 다음과 같이 수행합니다:
- 웹사이트 구조 분석 (Analyze the website structure)
- 안티 봇 (anti-bot) 보호 기능 확인
- 관련 HTML 요소 추출
- 웹사이트 유형에 기반한 완전한 Scrapy 스파이더 (spider) 생성
다음과 같은 다양한 유형의 스크레이퍼 (scraper)를 요청할 수 있습니다:
E-commerce PLP (Product Listing Page, 상품 목록 페이지)
- 상품 카탈로그/카테고리 페이지 스크레이핑
E-commerce PDP (Product Detail Page, 상품 상세 페이지)
- 상세 상품 정보 스크레이핑
예시:
nike.com을 위한 이커머스 PDP 스크레이퍼를 작성해줘
이 프로젝트에는 특정 안티 봇 (anti-bot) 조치를 우회할 수 있는 스텔스 스크레이퍼 (stealth scraper)를 만들기 위한 Camoufox 템플릿이 포함되어 있습니다. MCP 도구는 다음과 같은 작업을 도와줍니다:
- Camoufox를 사용하여 페이지 콘텐츠 가져오기
- 원하는 요소에 대한 XPath 셀렉터 (selector) 생성
- 템플릿을 기반으로 완전한 Camoufox 스크레이퍼 생성
cursor-rules 파일에 새로운 스크레이퍼 유형을 추가하여 기능을 확장할 수 있습니다. 모듈형 설계 덕분에 커스터마이징이 용이합니다.
AI-Cursor-Scraping-Assistant/
├── MCPfiles/
│ ├── xpath_server.py # 웹 스크레이핑 도구가 포함된 MCP 서버
...
향후 개발을 위해 계획된 기능은 다음과 같습니다:
프록시 (Proxy) 지원
- 운영자의 요청 시 프록시 지원 추가
- 프록시 로테이션 (rotation) 전략 구현
- 다양한 프록시 제공업체 지원
- 프록시 인증 처리
- 인기 있는 프록시 서비스와의 통합
XPath 셀렉터 (Selector) 개선
- 생성된 XPath 셀렉터에 대한 검증 메커니즘 추가
- 셀렉터 정교화를 위한 피드백 루프 구현
- 셀렉터 재작업을 위한 제어 흐름 (control flow) 관리
- 문제가 있는 셀렉터의 자동 수정
- 동적 콘텐츠 및 AJAX 로딩과 같은 예외 케이스 처리
기능 확장
- 더 많은 스크레이퍼 유형 지원 (뉴스 사이트, 소셜 미디어 등)
- 추가적인 안티 봇 (anti-bot) 우회 기술과의 통합
- 향상된 JSON 추출 기능
- 더 복잡한 네비게이션 (navigation) 패턴 지원
- 다중 페이지 스크레이핑 최적화
이 프로젝트는 The Web Scraping Club의 기사를 기반으로 합니다:
웹 스크레이핑 기술 및 모범 사례에 대한 자세한 정보는 The Web Scraping Club을 방문하세요.
기여는 언제나 환영합니다! 자유롭게 Pull Request를 제출해 주세요.
이 프로젝트는 MIT License 라이선스 하에 배포됩니다. 자세한 내용은 LICENSE 파일을 참조하세요.
AI 자동 생성 콘텐츠
본 콘텐츠는 GitHub AI Tools의 원문을 AI가 자동으로 요약·번역·분석한 것입니다. 원 저작권은 원저작자에게 있으며, 정확한 내용은 반드시 원문을 확인해 주세요.
원문 바로가기