본문 바로가기
Back-end/Python

[크롤링] Selenium으로 특가 상품 수집 (1) - 프로젝트 준비

by 허도치 2020. 1. 31.

  Selenium은 자동화 툴이지만 크롤링에 이용하는 이유는 아무래도 무한 스크롤이나 클라이언트 사이드 렌더링(React, Vue 등)을 사용하는 동적 웹사이트 때문이기도 하지만, XPATH가 지원된다는 것도 한 몫 한다고 생각한다. 왜냐하면, 다른 포스트에서 살짝 다룬적이 있었는데 CSS Selector로 할 수 없는 편리한 기능들을 많이 지원하기 때문이다. 실제 웹을 실행하는 환경과 동일하기 때문에 페이지를 한번 요청하는데 다른 모듈에 비해 시간이 많이 걸리는 편이지만 실시간으로 데이터를 수집해야 하는 경우가 아니라면 Selenium을 사용하는 것이 편하다.

 

  Scrapy로 크롤러를 만들 때 Middleware로 사용하긴 했었지만 단독으로 사용한 적은 없었다. 그래서 이번 포스트에서는 Selenium만을 이용한 크롤러를 만들어 보려고한다.

 

 

1. 프로젝트 구성.

         - 패키지명은 [ shop_crawler ].

         - [ .venv ] 폴더는 Python 가상머신(virtualenv)이므로 사용하지 않아도 무방하지만, 사용하는 것을 권장함.

         - [ .vscode ] 폴더는 VisualStudioCode의 설정이 담긴 폴더이므로 무시.

         - [ crawler ] 폴더는 Selenium을 이용하여 만들 Crawler 모듈.

         - [ crawler/drivers/chromedriver.exe ] 파일은 Selenium에서 사용할 ChromeWebDriver.

           * ChromeDriver 78.0.3904.105 다운로드

         - [ crawler/__init__.py ] 파일은 'Crawler를 작성'할 파일.

         - [ crawler/parser.py ] 파일은 수집된 데이터를 파싱할 때 사용할 기능들을 작성한 파일.

         - [ crawl.py ] 파일은 수집 대상을 선정하고 'Crawler를 실행'하는 파일.

           * 초반에는 Crawler를 이 파일에 작성할 것임.

 

 

2. 수집대상.

   2-1. 온라인 쇼핑몰인 11번가, 티몬, 위메프의 특가 상품을 수집 대상으로 선정하였음.

         - 작성일자 기준( 2020-01-31 )

         - 파싱하는 방법만 다른 것이기 때문에 1개만 만들어보면 다를 사이트도 쉽게 추가할 수 있음.

 

   2-2. 11번가의  특가상품 페이지.

         - http://deal.11st.co.kr/html/nc/deal/main.html

 

쇼킹딜 - 11번가

땅콩,미스터피,발리과자,안주,견과류 [중독주의!!!] 발리 쇼핑리스트! 국민 간식 미스터피땅콩! 10% 정상가5,700원 판매가5,100원~ 12,991 개 구매

deal.11st.co.kr

 

   2-3. 티몬의  특가상품 페이지.

         - http://www.tmon.co.kr/best/1

 

타임커머스 티몬

한달 내내/20개 초강력혜택/20개 티몬블랙딜

www.tmon.co.kr

 

   2-4. 위메프의  특가상품 페이지.

         - https://front.wemakeprice.com/special/group/4000021

 

특가대표! 위메프

고객의 돈과 시간을 아껴주는 위메프

front.wemakeprice.com

 

 

3. 마치며.

   - 이번 포스트는 프로젝트가 어떻게 구성되어있는지 어떤 대상을 수집할 것인지에 대해 정리해 보았다. 다음 포스트에서부터 본격적으로 크롤러를 작성해보도록 하겠다.

   - 크롤러를 재사용하기 편하게 모듈로 만들것이기 때문에 파이썬을 시작한지 얼마안된 초보자들에게는 다소 어려울 수 있다. 필자도 만들면서 정리하는 것이기 때문에 최대한 단계별로 나누어서 만들어 보도록 하겠다.

댓글