셀러들의 비밀무기 셀러허브 (SellerHub) - 각 플랫폼의 검색 API/URL 패턴, 인증 방법, 수집 가능한 데이터 범위 등을 조사하여 기록하는 문서입니다.
| 플랫폼 | 조사 상태 | 검색 API/URL 패턴 | 인증 필요 여부 | 수집 가능한 데이터 | 특수 요구사항 | 비고 |
|---|---|---|---|---|---|---|
| 네이버가격비교 | 추후 수집 예정 | 토큰 인증 등 복잡한 인증 필요 |
토큰 기반 인증 필요 | 추후 조사 예정 | 해외직구 제품 제외 필터링 방법 필요 | 토큰 생성 및 복잡한 인증 절차로 인해 추후 수집 예정. 우선 다른 플랫폼부터 개발 진행. |
| 머스트잇 | 조사 완료 |
기본 주소:m.web.mustit.co.kr/인기상품 랭킹: https://m.web.mustit.co.kr/m/etc/ranking?category=ALL인기브랜드 랭킹: https://m.web.mustit.co.kr/m/etc/ranking?type=brand핫딜 상품: https://m.web.mustit.co.kr/m/product/hot_deal검색 페이지: https://m.web.mustit.co.kr/m/product/header_all_search키워드 검색: https://m.web.mustit.co.kr/m/product/product_search?keyword={키워드}&click=current_productsearch(참고: click 파라미터는 current_productsearch 또는 all_productsearch 사용 가능) 상품 상세: https://m.web.mustit.co.kr/v2/m/product/product_detail/{상품번호}?from_keyword={키워드}&isNewTab=Y이미지 도메인: https://image.mustit.co.kr/https://static-ux.mustit.co.kr/
|
인증: 세션 쿠키 필수 - 1단계: 메인 페이지 접근으로 세션 쿠키 획득 GET https://m.web.mustit.co.kr/- 2단계: 획득한 쿠키로 검색/상세 페이지 요청 - 필수 쿠키: mustit_uid, nid, tmp_cart_id, cartCount - 선택 쿠키: _ga, _gid, __f_i_ss_d 등 (추적용) 필수 헤더: - Accept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8- Accept-Language: ko-KR,ko;q=0.9,en-US;q=0.8,en;q=0.7- Accept-Encoding: gzip, deflate, br, zstd- Cache-Control: no-cache- Pragma: no-cache- Sec-CH-UA: "Chromium";v="142", "Google Chrome";v="142"- Sec-CH-UA-Mobile: ?0- Sec-CH-UA-Platform: "Windows"- Sec-Fetch-Dest: document- Sec-Fetch-Mode: navigate- Sec-Fetch-Site: same-origin (검색/상세 페이지용)- Sec-Fetch-User: ?1- Referer: https://m.web.mustit.co.kr/ (검색/상세 페이지용)- User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36...구현 상태: ✅ HTTP 200 성공 확인 완료 (2025-12-03) |
HTML 기반 (SSR) - Nuxt.js 기반 서버사이드 렌더링 - 상품명: <p class="name">- 브랜드: <p class="brand">- 가격: <div class="price"> 내부• 할인율: <p class="discount">• 할인가: <p class="discount_price">• 원가: <del class="del_price">- 이미지: <img src="..."> (300x300 또는 300x400)- 상품 링크: <a href="/v2/m/product/product_detail/{상품번호}">- 상품 ID: URL에서 추출 또는 data-search-item-index 속성- 찜 수: <div class="review_info"> 내부 <span class="number">- 평점: <div class="review_info"> 내부 <span class="number"> (예: "5.0 (4)")- 가격비교: <div class="catalog_count"> 내부 (예: "가격비교 24개")- 배송: <span class="badge"> (예: "무료배송")이미지 URL 패턴: - 상품: /lib/upload/product/{판매자}/{년}/{월}/{파일명}- 리사이즈: /_dims_/resize/300x300/extent/300x400- 배너: /lib/upload/home/main_banner/{파일명}- 브랜드: /lib/upload/home/brand_shortcut/{파일명}- 특가: /lib/upload/admin/specialSale/{파일명}
|
- HTML 기반: JSON API 없음, SSR로 HTML 제공 - 동적 로딩: Nuxt.js 클라이언트 사이드 하이드레이션 - 이미지 리사이징: URL 파라미터로 크기 조절 - 무한스크롤: 가능성 있음 (추가 확인 필요) |
구조 분석 완료: 7개 엔드포인트 분석 완료 주요 태그: article, div, p, a, img, button, svg 주요 클래스: search_item_container, info_container, name, brand, price, review_info_box, catalog_count 데이터 추출: HTML 파싱 (상품명, 브랜드, 가격, 이미지, 찜 수, 평점, 가격비교 개수) 상품 구조: <article class="search_item_container"> 단위로 상품 정보 포함찜 수/평점: review_info_box 내부에서 추출 가능가격비교: catalog_count 내부에서 추출 가능 (예: "가격비교 24개")이미지: Swiper 슬라이더 구조, 여러 이미지 제공 ✅ 디버그 완료 (2025-12-03): - 키워드 검색: HTTP 200 성공 (1.9MB 응답) - 상품 상세: HTTP 200 성공 (421KB 응답) - 세션 쿠키 획득 방법 구현 완료 - 헤더 설정 최적화 완료 - 디버그 페이지 구현 완료 |
| 필웨이 | 조사 완료 |
기본 주소:https://www.feelway.com/키워드 검색 (전체): https://www.feelway.com/list.php?brand_no=&cate_no=&sub_cate_no=&g_price_small=&g_price_max=&f_key_goods={keyword}파라미터: - brand_no: 브랜드 번호 (빈 값 = 전체)- cate_no: 카테고리 번호 (빈 값 = 전체)- sub_cate_no: 하위 카테고리 번호 (빈 값 = 전체)- g_price_small: 최소 가격- g_price_max: 최대 가격- f_key_goods: 검색 키워드 (URL 인코딩 필요)핫딜 상품: https://www.feelway.com/sale.php최저가 가격비교: https://www.feelway.com/event/catalogueLowest.php?pageNo={page}- pageNo: 페이지 번호 (1부터 시작)상품 상세: https://www.feelway.com/view_goods.php?g_no={product_id}- g_no: 상품 번호 (예: 7758685820)이미지 도메인: https://img000b.feelway.com/https://img004.feelway.com/https://img005.feelway.com/http://icon.feelway.com/
|
인증: 세션 쿠키 필수 - 1단계: 메인 페이지 접근으로 세션 쿠키 획득 GET https://www.feelway.com/- 2단계: 획득한 쿠키로 검색/상세 페이지 요청 - 필수 쿠키: PHPSESSID - 선택 쿠키: _fwb, _gcl_au, _fbp, _gid, cartCnt 등 (추적용) 필수 헤더: - Accept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8- Accept-Language: ko-KR,ko;q=0.9,en-US;q=0.8,en;q=0.7- Accept-Encoding: gzip, deflate, br, zstd- Connection: keep-alive- Upgrade-Insecure-Requests: 1- Sec-Fetch-Dest: document- Sec-Fetch-Mode: navigate- Sec-Fetch-Site: same-origin (검색/상세 페이지용)- Sec-Fetch-User: ?1- Referer: https://www.feelway.com/ (검색/상세 페이지용)- User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36...인코딩: - Content-Type: text/html; charset=euc-kr (일부 페이지)- HTML meta charset: euc-kr 또는 utf-8- 필수: EUC-KR → UTF-8 변환 처리 필요 - mb_convert_encoding() 또는 iconv() 사용구현 상태: ✅ HTTP 200 성공 확인 완료 (2025-12-03) |
HTML 기반 데이터 수집 검색 결과 페이지 파싱: 1. 상품 리스트 추출: - JavaScript 함수 drawProductList() 호출 부분 찾기- 패턴: drawProductList([{...JSON 데이터...}])- 정규식: /drawProductList\(\[(.*?)\]\)/s- JSON 파싱 후 상품 정보 추출 2. JSON 데이터 구조 (예상): {3. HTML 직접 파싱 (대안): - 상품명: querySelectorAll('[class*="name"], [class*="title"], [class*="goods"]')- 가격: querySelectorAll('[class*="price"], [class*="cost"], [class*="amount"]')- 이미지: querySelectorAll('img[src*="feelway.com"]')- 상품 링크: querySelectorAll('a[href*="view_goods.php"]')- 상품 ID 추출: href에서 g_no 파라미터 추출4. 이미지 URL 패턴: - https://img000b.feelway.com/{상품번호}/0smallbd{brand_no}pd{product_id}ed1.jpg- https://img004.feelway.com/upfile011/GOODS/{g_no}/{filename}.jpeg- https://img005.feelway.com/upfile014/GOODS/{g_no}/{filename}.jpeg- 쿼리 파라미터: ?loc=hotdeal&brand_no={brand_no}&g_no={g_no}상품 상세 페이지 파싱: 1. 기본 정보: - 상품명: document.querySelector('title') 또는 h1, h2 태그- 가격: querySelectorAll('[class*="price"]')- 브랜드: querySelectorAll('[class*="brand"]') 또는 JSON 데이터- 상품번호: URL 파라미터 g_no 또는 HTML 속성2. 이미지 갤러리: - 메인 이미지: querySelector('img[src*="GOODS/' + g_no + '"]')- 추가 이미지: querySelectorAll('img[src*="GOODS/' + g_no + '"]')- 이미지 URL 패턴: https://img*.feelway.com/upfile*/GOODS/{g_no}/*3. 상세 정보: - 상품 설명: querySelector('[class*="description"], [class*="detail"]')- 판매자 정보: querySelector('[class*="seller"], [class*="user"]')- 감정 서비스: querySelector('[class*="appraisal"], [class*="감정"]')- 배송 정보: querySelector('[class*="delivery"], [class*="배송"]')- 카테고리: querySelector('[class*="category"], [class*="카테고리"]')4. 메타 정보: - <title>: 상품명 포함- <meta property="og:title">: 상품명- <meta property="og:image">: 대표 이미지- <meta property="og:description">: 상품 설명주요 HTML 구조: 헤더/네비게이션: - ID: header, top_area, quick-area- 클래스: new-header, wrap, head-login-button- 검색: findTotalSearchKeyword, findTotalListText, findTotalListBox- 네비게이션: headerGlobalNavigation, headerGlobalNavigationList상품 리스트 영역: - 클래스: topBanner__wrap, product-list (추정)- JavaScript 렌더링 영역 확인 필요 JavaScript 데이터 추출: 1. drawProductList() 함수 호출 찾기: - 정규식: /drawProductList\s*\(\s*(\[.*?\])\s*\)/s- JSON 파싱: JSON.parse(matchedJsonString)- 배열 순회하여 각 상품 정보 추출 2. 인라인 스크립트 태그: - querySelectorAll('script:not([src])')- textContent에서 drawProductList 검색- 정규식으로 JSON 데이터 추출 페이지네이션: - 최저가 비교: pageNo 파라미터 사용 (1부터 시작)- 검색 결과: 페이지네이션 HTML 구조 확인 필요 - querySelectorAll('a[href*="pageNo"], a[href*="page="]')로 페이지 링크 찾기API 엔드포인트: - JavaScript 파일: https://css.feelway.com/js/apiv1.js?skelecton={timestamp}- AJAX 요청 가능성: Network 탭에서 확인 필요 - API URL 패턴: /api/ 또는 /ajax/ 경로 확인 필요
|
특수 요구사항: 1. 인코딩 변환 필수: EUC-KR → UTF-8 2. 쿠키 관리: PHPSESSID 세션 유지 3. Referer 헤더: 검색/상세 페이지 요청 시 필수 4. HTML 파싱: JavaScript 렌더링 데이터 포함 가능 5. 이미지 URL: 여러 CDN 도메인 사용 6. 페이지네이션: 일부 페이지만 pageNo 파라미터 지원주의사항: - 일부 페이지는 charset=euc-kr 명시- Content-Type 헤더와 HTML meta charset 모두 확인 필요 - 잘못된 UTF-8 문자 제거 처리 필요 - JSON 인코딩 시 JSON_INVALID_UTF8_IGNORE 플래그 사용 권장
|
조사 완료 일자: 2025-12-03 테스트 결과: - 기본 페이지: HTTP 200 성공 (1.0MB 응답) - 핫딜: HTTP 200 성공 (466KB 응답) - 최저가 비교: HTTP 200 성공 (139KB 응답) - 키워드 검색: HTTP 200 성공 (752KB 응답) - 상품 상세: HTTP 200 성공 (385KB 응답) - 세션 쿠키 획득 방법 구현 완료 - 인코딩 변환 처리 완료 - 한글 정상 표시 확인 완료 추가 조사 필요: - 상품 리스트 HTML 구조 상세 분석 - JavaScript 렌더링 데이터 추출 방법 - 페이지네이션 구조 확인 - AJAX API 엔드포인트 확인 |
| 트렌비 | 조사 완료 |
기본 주소:https://www.trenbe.com(특이사항: 메인 페이지에 투데이 타임세일 상품 포함) 인기상품 랭킹: https://www.trenbe.com/ranking?type=product인기브랜드 랭킹: https://www.trenbe.com/ranking?type=brand최저가 페이지: https://www.trenbe.com/promotion/{프로모션ID}- 예: https://www.trenbe.com/promotion/1203트렌비 추천 상품: https://www.trenbe.com/recommendation키워드 검색: https://www.trenbe.com/Brand?search={키워드}- 예: https://www.trenbe.com/Brand?search=루이비통상품 상세: https://www.trenbe.com/product/{상품번호}?catalog={카탈로그ID}- 예: https://www.trenbe.com/product/++143001992?catalog=100956580- 상품번호 형식: ++{숫자} (예: ++143001992)- 카탈로그 ID: 선택적 파라미터 API 도메인: https://weblog-api.trenbe.comhttps://service.trenbe.comhttps://displaygateway.trenbe.comhttps://image-cdn.trenbe.comhttps://assets.trenbe.com
|
인증: 쿠키 필요 (세션 유지) - 1단계: 메인 페이지 접근으로 세션 쿠키 획득 GET https://www.trenbe.com- 2단계: 획득한 쿠키로 검색/상세 페이지 요청 - 필수 쿠키: 세션 쿠키 (자동 생성) - 선택 쿠키: 추적용 쿠키 (선택적) 필수 헤더: - Accept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8- Accept-Language: ko-KR,ko;q=0.9,en-US;q=0.8,en;q=0.7- Accept-Encoding: gzip, deflate, br, zstd- Connection: keep-alive- Upgrade-Insecure-Requests: 1- Sec-Fetch-Dest: document- Sec-Fetch-Mode: navigate- Sec-Fetch-Site: same-origin (검색/상세 페이지용)- Sec-Fetch-User: ?1- Referer: https://www.trenbe.com (검색/상세 페이지용)- User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36...인코딩: - Content-Type: text/html; charset=UTF-8- HTML meta charset: utf-8- UTF-8 인코딩 사용 구현 상태: ✅ HTTP 200 성공 확인 완료 (2025-12-04) |
React 기반 SPA (Single Page Application) ⚠️ 중요: 모든 페이지가 동일한 HTML 반환 (약 13.9KB) - 실제 콘텐츠는 JavaScript로 동적 렌더링 - React 컴포넌트로 클라이언트 사이드 렌더링 - HTML에는 기본 구조만 포함 ( id="trenbe-react-body", id="app")데이터 수집 방법: 1. API 엔드포인트 사용 (권장): - https://weblog-api.trenbe.com API 호출- Network 탭에서 실제 API 요청 확인 필요 - JSON 응답으로 상품 데이터 수집 가능 2. JavaScript 실행 (대안): - Selenium/Playwright 등으로 브라우저 자동화 - JavaScript 실행 후 DOM에서 데이터 추출 - React 컴포넌트가 렌더링된 후 데이터 수집 3. HTML 직접 파싱 (비권장): - HTML에는 실제 상품 데이터 없음 - 초기 로딩 HTML만 반환됨 주요 HTML 구조: - ID: trenbe-react-body, app- 클래스: 없음 (React로 동적 생성) - 스크립트: React 번들 파일 로드 API 엔드포인트 (추정): - https://weblog-api.trenbe.com: 웹 로그/분석 API- https://service.trenbe.com: 서비스 API (상품 데이터)- https://displaygateway.trenbe.com: 디스플레이 게이트웨이- https://image-cdn.trenbe.com: 이미지 CDN추가 조사 필요: - 실제 상품 데이터 API 엔드포인트 확인 - API 요청 형식 (GET/POST, 파라미터, 헤더) - 인증 토큰 필요 여부 - 페이지네이션 구조 - 검색 API 엔드포인트 - 상품 상세 API 엔드포인트 |
특수 요구사항: 1. React SPA 구조: HTML 직접 파싱 불가 2. API 엔드포인트 필수: 실제 데이터는 API로 수집 3. JavaScript 실행 필요: 또는 브라우저 자동화 도구 사용 4. 쿠키 관리: 세션 쿠키 유지 필요 5. Referer 헤더: 검색/상세 페이지 요청 시 권장 6. 동적 렌더링: React 컴포넌트 렌더링 대기 필요 주의사항: - 모든 페이지가 동일한 HTML 반환 (13,958 bytes) - 실제 상품 데이터는 JavaScript 실행 후 렌더링 - API 엔드포인트 추가 조사 필수 - Network 탭에서 실제 API 요청 확인 필요 - CORS 정책 확인 필요 (API 직접 호출 시) |
조사 완료 일자: 2025-12-04 테스트 결과: - 기본 페이지: HTTP 200 성공 (13.9KB 응답) - 인기상품 랭킹: HTTP 200 성공 (13.9KB 응답) - 인기브랜드 랭킹: HTTP 200 성공 (13.9KB 응답) - 최저가 페이지: HTTP 200 성공 (13.9KB 응답) - 트렌비 추천 상품: HTTP 200 성공 (13.9KB 응답) - 키워드 검색: HTTP 200 성공 (13.9KB 응답) - 상품 상세: HTTP 200 성공 (13.9KB 응답) - 모든 페이지 동일한 HTML 반환 확인 - React SPA 구조 확인 완료 ⚠️ 중요 발견: - 트렌비는 React 기반 SPA로, HTML 직접 파싱 불가 - 실제 상품 데이터는 API를 통해 가져와야 함 - weblog-api.trenbe.com API 엔드포인트 확인됨- 추가 API 엔드포인트 조사 필요 다음 단계: 1. 브라우저 Network 탭에서 실제 API 요청 확인 2. API 엔드포인트 URL 패턴 파악 3. API 요청 파라미터 및 헤더 확인 4. 인증 토큰 필요 여부 확인 5. JSON 응답 구조 분석 |
| 리본즈 | 조사 완료 |
기본 주소:https://www.reebonz.co.kr/랭킹 페이지: https://www.reebonz.co.kr/ranking(상품카드에 새상품/빈티지 표시) 키워드 검색 (전체): https://www.reebonz.co.kr/product_search?keyword={키워드}&ref_info=keyword새상품 검색 (중고 제외): https://www.reebonz.co.kr/product_search?keyword={키워드}&ref_info=keyword&service_type=store&page={페이지}&order_by=rating상품 상세: https://www.reebonz.co.kr/products/{상품번호}/section/keyword/0?view_type=buy&ref_info=keyword&num=0&keyword={키워드}이미지 도메인: https://cdn.reebonzkorea.co.kr/
|
인증: 기본 헤더만 필요 (쿠키 선택사항) - GET 요청 사용 - 헤더: Sec-CH-UA, Sec-Fetch-* 헤더 권장 - Referer: 검색/상세 페이지에서 권장 - 프록시 미사용 가능 구현 상태: ✅ HTTP 200 성공 확인 완료 (2025-12-04) 주의사항: SPA(React/Vue 등) 구조로, 초기 HTML은 매우 작음 (5-10KB). 실제 상품 데이터는 JavaScript로 동적 로드됨. 내부 API 호출 또는 브라우저 자동화 필요. |
HTML 기반 파싱 (초기 로드): - 제목: <title> 태그- 메인 컨테이너: #rootComponent, #mainContainer- 검색 결과: .searchResultContainer- 랭킹: .rankingProducts- 상품 상세: .productContainer, .nr-show-productJavaScript 데이터 추출: - 실제 상품 데이터는 JavaScript로 동적 렌더링 - 내부 API 호출 패턴 확인 필요 - 브라우저 자동화(PhantomJS, Puppeteer 등) 또는 네트워크 요청 분석 필요 예상 데이터 필드: - 상품명, 가격, 이미지 URL - 서비스 타입 (새상품/빈티지) - 상품번호, 브랜드, 카테고리 - 판매량, 찜 수 (내부 API에서 확인 필요) |
- SPA 구조: 초기 HTML은 껍데기만 반환 (5-10KB) - 동적 로딩: JavaScript로 실제 데이터 로드 - 페이지네이션: page 파라미터로 페이지 이동- 필터링: service_type=store (새상품만), order_by=rating (평점순)- 수집 방법: 내부 API 엔드포인트 식별 또는 브라우저 자동화 필요 |
구현 완료: 엔드포인트 테스트 페이지 생성 완료 응답 형식: HTML (초기 로드만, 실제 데이터는 JS 동적 로드) HTML 크기: 기본/랭킹 10KB, 검색/상세 5-6KB (매우 작음) 주요 클래스: .searchResultContainer, .rankingProducts, .productContainer주요 ID: #rootComponent, #mainContainer, #layout_main이미지 CDN: cdn.reebonzkorea.co.kr다음 단계: 네트워크 요청 분석으로 내부 API 엔드포인트 식별 또는 브라우저 자동화 도구 사용 검토 |
| 구구스 | 조사 완료 |
1단계: 검색 페이지 접근 (GET)https://www.gugus.co.kr/search/viewSearchList?searchTerm={키워드}&inputSearchTermYn=N2단계: 상품 목록 API (POST) https://www.gugus.co.kr/search/selectListSearchGoods3단계: 상품 상세 페이지 (GET) https://www.gugus.co.kr/goods/viewGoods?goodsNo={상품번호}이미지 도메인: https://image.gugus.co.kr/
|
쿠키 기반 인증 - 1단계 GET 요청으로 쿠키 획득 - 이후 POST 요청에 쿠키 포함 - 프록시 미사용 (서버 IP 직접 호출) |
검색 결과: - 상품번호 (gdsNo) - 상품명 (gdsNm) - 브랜드 영문명 (brndEngNm) - 브랜드 한글명 (brndKorNm) - 썸네일 이미지 URL (gdsImgUrl) - 등급 (gdsGrdNm) - 카테고리 (ctgrNm, ctgrDetail) - 판매가격 (prstSalePrc) - 원가 (originalPrice) - 할인율 (discountRate) - 등록일 (postDate) - 총 상품 수 (totalCount) 상세 페이지: - 상품 설명 (description) - 상품 이미지 목록 (534x534 사이즈) - 판매 상태 (available/sold_out) |
- 무한스크롤 방식: 페이지네이션 (한 페이지당 20개 상품) - 동적 로딩: POST API로 페이지별 데이터 요청 - 병렬 처리: 10-30개 페이지 동시 요청 - 배치 처리: 10-20페이지씩 배치로 수집 - 상세 파싱: 상품번호 수집 후 상세 페이지 별도 요청 |
구현 완료: 구구스 디자인 참고용 폴더에 100% 구현됨 API 요청 방식: 2단계 인증 (GET 쿠키 획득 → POST API 호출) 응답 형식: JSON (resultList 배열, totalCount 포함) 페이지 크기: 고정 20개/페이지 정렬: sortOrder='ltlyRegDtm' (최근 등록순) 타임아웃: 연결 8-12초, 전체 25-35초 (랜덤화) 동시 연결: 10-30개 랜덤 (차단 방지) |
| 크림 | 조사 완료 |
기본 주소:https://kream.co.kr/인기 페이지: https://kream.co.kr/?tab=home_recommendation_v3신상 페이지: https://kream.co.kr/?tab=home_richb2c럭셔리 페이지: https://kream.co.kr/?tab=home_richluxury많이 산 상품 랭킹: https://kream.co.kr/?tab=home_ranking_v2&popular_filter=buy많이 선물한 랭킹: https://kream.co.kr/?tab=home_ranking_v2&popular_filter=gift인기 브랜드 페이지: https://kream.co.kr/?tab=home_ranking_v2&popular_filter=brand이미지 도메인: https://kream-phinf.pstatic.net/
|
인증: 기본 헤더만 필요 (쿠키 선택사항) - GET 요청 사용 - 헤더: Sec-CH-UA, Sec-Fetch-* 헤더 권장 - Referer: 검색/상세 페이지에서 권장 - 프록시 미사용 가능 구현 상태: ✅ HTTP 200 성공 확인 완료 (2025-12-04) 주의사항: Nuxt.js 기반 SPA 구조로, 초기 HTML이 매우 큼 (1.9MB ~ 3MB). 실제 상품 데이터는 __NUXT_DATA__ 스크립트 태그 또는 내부 API 호출로 로드됨.
|
HTML 기반 파싱 (초기 로드): - 제목: <title> 태그- 메인 컨테이너: #__nuxt, #wrap- Nuxt 데이터: #__NUXT_DATA__ (스크립트 태그 내 JSON 데이터 포함 가능성)- 헤더: .header-desktop, .header_main- 메인 콘텐츠: main 태그JavaScript 데이터 추출: - __NUXT_DATA__ ID를 가진 스크립트 태그에서 JSON 데이터 추출 가능- Nuxt.js SSR 데이터가 HTML에 포함되어 있을 가능성 - 내부 API 호출 패턴 확인 필요 확인된 데이터 필드: - 상품명 (product_name) - 가격 (price) - 랭킹 페이지에서 추출 가능 - 이미지 URL (kream-phinf.pstatic.net 도메인) - 카테고리 (추천, 신상, 패딩, 럭셔리, 랭킹, 중고, 뷰티, 이벤트) - 일반판매 가격과 보관판매 평균 가격 (추가 조사 필요) |
- SPA 구조: Nuxt.js 기반, 초기 HTML이 매우 큼 (1.9MB ~ 3MB) - 탭 기반 네비게이션: ?tab= 파라미터로 페이지 전환- 필터링: popular_filter=buy (많이 산), popular_filter=gift (많이 선물한), popular_filter=brand (인기 브랜드)- 데이터 수집 방법: __NUXT_DATA__ 스크립트 태그에서 JSON 추출 또는 네트워크 요청 분석으로 내부 API 식별- 페이지 크기: 1.9MB ~ 3MB (매우 큼, SSR 데이터 포함) |
구현 완료: 엔드포인트 테스트 페이지 생성 완료 응답 형식: HTML (Nuxt.js SSR, 초기 로드에 데이터 포함) HTML 크기: 1.9MB ~ 3MB (매우 큼, SSR 데이터 포함) 주요 클래스: .layout_base, .header-desktop, .header_main, .wrap주요 ID: #__nuxt, #__NUXT_DATA__, #wrap, #WebSite이미지 CDN: kream-phinf.pstatic.net (네이버 스토리지)데이터 추출: __NUXT_DATA__ 스크립트 태그에서 JSON 데이터 추출 또는 네트워크 요청 분석 필요특수 요구사항: 일반판매 가격과 보관판매 평균 가격 수집 필요 (머스트잇/트렌비와 유사) |
| 캉카스 | 조사 완료 |
기본 주소:https://www.kangkas.com/키워드 검색: https://www.kangkas.com/goods/goods_search.php?keyword={키워드}상품 상세: https://www.kangkas.com/goods/goods_view.php?goodsNo={상품번호}신규 상품: https://www.kangkas.com/goods/goods_list.php?cateCd={카테고리코드}이미지 도메인: https://commercekks3.cdn-nhncommerce.com/
|
인증: 기본 헤더만 필요 (쿠키 선택사항) - GET 요청 사용 - 헤더: Sec-CH-UA, Sec-Fetch-* 헤더 권장 - Referer: 검색/상세 페이지에서 권장 - 프록시 미사용 가능 구현 상태: ✅ HTTP 200 성공 확인 완료 (2025-12-04) |
HTML 기반 (PHP SSR) - NHN Commerce 기반 쇼핑몰 시스템 - 상품명: <h1> 또는 클래스 기반 추출- 가격: price 클래스 또는 텍스트 패턴 (예: "₩3,200,000")- 상품번호: URL 파라미터 goodsNo 또는 HTML 내부- 이미지: <img src="..."> (CDN 도메인 사용)- 상품 링크: <a href="/goods/goods_view.php?goodsNo={번호}">- 카테고리: cateCd 파라미터로 필터링이미지 URL 패턴: - /data/skin/front/moment/img/ (공통 이미지)- /data/skin/front/moment/img/banner/ (배너)- /data/skin/front/moment/img/common/ (아이콘/버튼)- 상품 이미지는 추가 분석 필요 |
- HTML 기반: JSON API 없음, PHP로 HTML 제공 - 페이지네이션: 추가 확인 필요 - 카테고리 코드: 신규 상품 목록에서 사용 (예: 039015) - 검색 결과: "RESULTS FOR {키워드}" 형식으로 표시 - CDN 사용: NHN Commerce CDN 활용 |
✅ 테스트 완료 (2025-12-04): - 기본 페이지: HTTP 200 성공 (194KB) - 키워드 검색: HTTP 200 성공 (296KB), 가격 데이터 추출 확인 - 상품 상세: HTTP 200 성공 (295KB), 상품명/가격 추출 확인 - 신규 상품: HTTP 200 성공 (307KB), 가격 데이터 추출 확인 HTML 구조: - 주요 클래스: body-goods, body-goods-search, body-goods-view, body-goods-list- 검색 관련: layer_search, auto_complete, hit_keyword- 가격 표시: price 클래스 또는 텍스트 패턴데이터 추출: HTML 파싱으로 상품명, 가격, 이미지, 링크 추출 가능 다음 단계: 상품 리스트 구조 상세 분석 및 페이지네이션 확인 |