Amazon Scraper API - SessionBridge 기반 스크래퍼
1.9K
SessionBridge 허브와 Browserless 웹소켓을 결합하여 대규모 아마존 상품 리스트 및 상세 페이지 생성을 목적으로 하는 강건한(Robust) 스크래퍼 템플릿입니다.
ProductParser 가 Buybox, Review, Variant 등의 하위 도메인별 파서로 완전히 모듈화되어 있습니다.BotDetectedError 를 throw하며 409, 404 통신 에러 등 인프라 에러 시 가시성 높은 에러 원인을 제공합니다.로컬에 Browserless 렌더링 컨테이너를 올립니다.
docker-compose up -d
npm install
최상단 디렉토리에 .env 파일을 구성해야 합니다. 가장 중요한 속성값은 아래와 같습니다.
# 기본 SessionBridge 타겟 국가 및 프록시 설정
COUNTRY_CODE=US
PROXY_ENABLED=false
PROXY_URL=http://<YOUR_PROXY_IP>:<PORT>
# SessionBridge Hub 연결 권한
SESSION_BRIDGE_HUB_URL=http://<YOUR_IP>:3003/
SESSION_BRIDGE_API_KEY=dev-api-key-change-in-production
SESSION_BRIDGE_CLIENT_ID=amazon-scraper-worker-1
# 스크린샷 남기기 여부
SCREENSHOT_ENABLED=true
모든 수집 및 제어 로직은 단일 진입점 bin/amazon-scraper.js을 통해 제공됩니다.
node bin/amazon-scraper.js <명령어> [옵션]
명령어 종류:
list: 상품 리스트 수집 (키워드 또는 URL 기준)product: 단일 상품 상세 정보 수집 (ASIN 또는 URL 기준)batch: (list 실행 후 product 연속 수집) 일괄 수집 파이프라인속도 최적화 및 디버깅, 프록시 타겟팅을 위해 모든 명령어에 공통으로 덧붙일 수 있는 플래그들입니다.
| 옵션 단축키 | 풀 네임 | 설명 |
|---|---|---|
-c | --country | 타겟 프록시 국가 코드를 런타임에 강제합니다. (지원 국가: US, KR) (기본값: .env의 COUNTRY_CODE) |
-i | --no-images | 가장 무거운 작업인 이미지 파싱 및 브라우저 이미지 로드 자체를 전면 스킵/차단합니다. |
-v | --no-variants | 높은 CPU 자원을 소모하는 상품 옵션(색상, 사이즈 등) 및 셀렉터 파싱을 스킵합니다. |
-s | --exclude-sponsored | 검색결과(리스트)에서 광고(Sponsored) 상품을 수집 목록에서 알아서 제외합니다. |
-x | --no-proxy | .env 설정과 무관하게 프록시 연결을 무시하고 직접 연결(Direct URL)합니다. |
--dump-html | 에러 발생 성공 여부와 관계없이 파싱된 HTML을 강제로 dumps/ 폴더에 저장합니다. |
키워드, 혹은 카테고리 URL로 진입하여 여러 개의 상품 정보(간략)들을 추출합니다.
전용 옵션:
-k, --keyword : 검색 키워드 (이것 또는 -u 필수)-u, --url : 검색 결과를 직접 지정할 리스팅 URL-p, --pages : 수집할 최대 페이지 수 (기본값: 1)-n, --max : 수집할 최대 상품 수 (기본값: 30)사용 예시:
# 기본 검색 (기본 1페이지 최대 30개 수집)
node bin/amazon-scraper.js list -k "laptop"
# 한국(KR) 세션을 사용하여 최대 2페이지 100개까지 수집 + 스폰서 광고 상품 무시 + 이미지 로드 끄기
node bin/amazon-scraper.js list -k "keyboard" -n 100 -p 2 -c KR -s -i
선택한 특정 단일 상품(ASIN 참조)에 접속하여 스펙, 옵션, 리뷰 등 모든 세부 상세 정보를 긁어옵니다.
전용 옵션:
-a, --asin : 수집할 대상 상품의 ASIN 문자열 (이것 또는 -u 필수)-u, --url : 직접 지정할 상품 상세 페이지 URL사용 예시:
# ASIN 기준 기본 단일 조회
node bin/amazon-scraper.js product -a B07V5K6LSF
# 상품 상세 정보가 필요하나 옵션(Variant)과 이미지 파싱 로직을 건너뛰어 초경량의 속도로 응답받기
node bin/amazon-scraper.js product -a B07V5K6LSF -v -i
별도 코드 구축 없이 list 작업 후 획득한 URL들을 순차적으로 product로 밀어넣어 일괄 수집하는 강력한 명령어입니다. 결과를 하나로 모아 results/batch_***.json 단위로 도출해냅니다.
전용 옵션:
-k, --keyword / -u, --url : 검색 타겟-p, --pages / -n, --max : 1단계(리스트) 탐색 범위 (배치의 기본 max값은 10개입니다)-d, --delay : 상품 상세 페이지 진입 전 각 스크래핑 사이에 둘 딜레이 ms (기본값: 2000)사용 예시:
# "usb hub"를 1페이지에서 5개 수집한 뒤, 1초(1000ms) 딜레이 간격으로 상세 옵션 파싱 전부 제외(-v)하고 실행
node bin/amazon-scraper.js batch -k "usb hub" -n 5 -p 1 -d 1000 -v
(참고: 배치 작업 시 활성화된 SessionBridge 쿠키가 즉각 확보되지 않는 경우 404 혹은 409 통신 에러를 반환하며 중단될 수 있습니다. 터미널의 에러 로그 지침에 따라 봇 타겟팅 국가 및 세션 가용량을 확인하세요.)
bin/amazon-scraper.js : 통합 애플리케이션 CLI 진입 스크립트src/scraper.js : 통합 스크래핑 제어 코어 및 HTTP 세션 모듈src/list-parser.js : 리스트 및 카테고리 HTML 페이지 분석 로직src/product-parser.js : 옵션 처리 및 서브 파서들을 감싸는 상세 분석 Facadesrc/parsers/ : 도메인별 (Buybox, Review, Image, Variant 등) 순수 파서 모듈 모음src/utils/ : BrowserManager, FileManager 기반 인프라 로직 분리 모음_tests/ : 과거 실험용 스크립트 및 디버그용 파일 모음 (현재 미사용)results/ : JSON 저장 폴더screenshots/ : 캡처 파일 저장 영역Content type
Image
Digest
sha256:384430aef…
Size
183 MB
Last updated
6 months ago
docker pull nukking/amazon-scraper