피드로 돌아가기
Dev.toFrontend
원문 읽기
API 부재 환경에서 Multi-Selector와 MutationObserver를 통한 고가용성 가격 추출 시스템 설계
Scraping Prices Without an API: Chrome Content Script Patterns for Japanese E-Commerce
AI 요약
Context
공식 API 제공이 제한적이거나 데이터 갱신 주기가 느린 일본 이커머스 플랫폼의 특성으로 인해 실시간 가격 비교 구현에 한계 발생. DOM 직접 접근 방식의 취약점인 사이트 리디자인에 따른 Selector 파손 문제를 해결해야 하는 상황.
Technical Solution
- Selector Fragility 해결을 위한 우선순위 기반의 Multi-Candidate Fallback 전략 채택
- 정규표현식을 활용한 일본어 통화 표기법(¥, 呀)의 정제 및 정수형 파싱 로직 구현
- Chrome Extension Service Worker를 중심 좌표로 설정한 Cross-Tab Message Passing 아키텍처 설계
- React 기반 SPA의 Hydration 지연 문제를 해결하기 위해 MutationObserver를 활용한 DOM 변경 감지 및 비동기 추출 프로세스 도입
- 제품명 내 불필요한 접미사를 제거하는 전처리 과정을 통해 서로 다른 플랫폼 간 Product Matching 정확도 향상
- GA4 이벤트 연동을 통한 Selector 추출 실패 실시간 모니터링 체계 구축
실천 포인트
- CSS Class보다 변경 가능성이 낮은 data-attribute 기반 Selector 우선 사용 - SPA 환경에서 단순 Retry Loop보다 자원 효율적인 MutationObserver 기반의 요소 대기 로직 검토 - API가 없는 외부 데이터 수집 시 단일 Selector가 아닌 우선순위 리스트(Fallback List) 구조 설계 - 수집 실패 지점을 정량적으로 파악하기 위한 에러 로그 수집 및 모니터링 파이프라인 구축