티스토리 뷰

업무자동화

파이썬 웹 크롤링 입문: Playwright·Selenium으로 가격 수집 자동화

기준이필요해 2026. 9. 19. 06:20

목차


     

    매일 경쟁사 가격을 옮겨 적는 일은 번거롭다. 파이썬 웹 크롤링은 Playwright나 Selenium으로 브라우저를 조작해 필요한 정보를 파일로 모으는 방식으로 시작할 수 있다. 

     

     

    크롤링 목표 정하기

     

    요약: 수집할 항목과 비교 기준을 먼저 정해야 쓸 만한 데이터가 쌓인다.

     

     

    공개 상품 페이지의 상품명·가격·옵션·수집 시각·출처 URL을 저장하는 목표가 적당하다. 가격 비교라면 통화와 배송비, 회원 할인 조건도 구분하는 편이 좋다.

     

    자료를 비교하며 중요하다고 느낀 점은 기준의 일관성이다. 용량이나 묶음 구성이 다르면 비교 결과도 어긋난다.

    대상 사이트의 공식 API와 이용 조건도 확인한다. robots.txt는 접근 권한을 부여하는 문서가 아니다. 수집 경로 허용을 모든 재이용의 허가로 판단하지 않는다. 

     

    자동화 도구 선택

     

    요약: 새 예제는 Playwright로 시작하고 기존 환경에 따라 Selenium을 선택한다.

     

     

    Playwright 입문 환경은 터미널에서 pip install playwright를 실행하고, 이어 playwright install chromium으로 사용할 브라우저를 설치하는 흐름이다. 

     

    Selenium은 기존 코드나 팀의 사용 경험이 있을 때 고려할 만하다. 필요한 드라이버가 없으면 Selenium Manager가 자동으로 탐색하고 내려받을 수 있다. 익숙한 도구로 작은 수집 작업을 완성하는 편이 좋다고 본다. 

     

     

    상품명과 가격 찾기

     

    요약: 상품 영역을 찾고 그 안에서 이름과 가격을 짝지어 읽는다.

     

     

    Playwright의 기본 흐름은 브라우저 실행, page.goto()로 페이지 접속, 요소 선택, 텍스트 읽기이다. Locator는 화면에서 필요한 부분을 찾는 도구이다. 

     

    상품 카드 안에서 이름과 가격을 각각 찾도록 구성하면 서로 다른 상품의 값이 섞이는 일을 줄일 수 있다. 버튼 역할이나 안정적인 속성으로 범위를 좁히고, 페이지 구조에 의존하는 긴 선택자는 피하는 편이 좋다. 선택자는 사이트마다 다르므로 그대로 복사해 모든 쇼핑몰에 적용할 수는 없다. 

     

    로딩 대기 설정

     

    요약: 페이지가 열리는 시점과 수집할 데이터가 준비되는 시점을 구분한다.

     

     

    Playwright에는 작업별 자동 대기가 있지만, locator.all()은 목록이 채워질 때까지 기다리지 않는다. 상품 목록의 로딩 완료 조건을 확인한 뒤 읽어야 누락을 줄일 수 있다. 

     

    Selenium은 WebDriverWait로 가격 요소가 나타나는 조건 등을 기다릴 수 있다. 공식 문서는 암시적 대기와 명시적 대기를 혼합하지 않도록 안내한다. 필요한 상태를 확인하는 쪽이 합리적이다. 

     

    CSV 저장과 검증

     

    요약: 원문과 정리한 값을 함께 저장하고 수집 실패를 구분한다.

     

     

    읽은 데이터는 Python의 csv.DictWriter로 열 이름을 정해 저장할 수 있다. CSV 파일을 열 때는 공식 문서 안내대로 newline=""을 지정한다. 

     

    가격 원문은 보관하고, 통화와 소수점 규칙을 확인한 뒤 비교용 숫자로 바꾸는 설계를 권한다. 숫자가 없다고 무료로 처리하면 안 된다. 누락은 빈값과 오류 상태로 기록하고, 이전 가격을 최신 값처럼 덮어쓰지 않는 것이 중요하다.

     

    매일 수집 예약

     

    요약: 예약 실행과 오류 기록을 연결해야 반복 조사에 활용할 수 있다.

     

     

    Windows 작업 스케줄러에서 일별 실행을 설정하고 Python 실행 파일과 스크립트의 전체 경로를 지정한다. 실행 계정과 저장 위치도 확인한다. 

     

    Python logging으로 실행 시각과 실패 원인을 남기면 문제를 추적하기 쉽다. 동향 조사라면 게시물 제목·게시일·URL을 같은 방식으로 모으면 된다. 

     

     

    마치는 글과 요약

     

    요약: 작은 범위에서 정확도를 확인하고 수집 범위를 넓히는 순서가 좋다.

     

     

    웹 수집 자동화는 반복 검색과 복사를 줄이는 데 가치가 있다. 다만 사이트 개편에 따른 수정과 결과 점검까지 사라지는 것은 아니다.

     

    이용 조건 확인, 비교 기준 통일, 로딩 대기, 실패 기록을 먼저 갖추는 편이 좋다. 처음에는 원문과 저장 결과를 직접 대조하고, 필요한 주기로 실행하면서 무리한 반복 요청을 줄이는 방향을 권한다.

     

    자동으로 모으고 싶은 웹 데이터는 댓글로 남겨주면 다음 글의 참고가 된다.

     

     

    검증 출처