기타

Python 크롤링으로 CGV 가장 마지막 예매 가능한 날짜 가져오기

Phililip
728x90

안녕하세요.

 

Python을 이용한 크롤링으로 CGV 특정 영화관에서 가장 마지막 예매 날짜를 가져오는 스크립트를 공유드리려고 합니다.

 

 

몇 분마다 실행시켜서 예매날짜가 새로 오픈되면 알림을 주는 알리미 처럼 이것저것 활용하세요^^

 

 

참고로 빌드 환경은 macOS 입니다. 참고해주세요!

 


 

 

 

 

 

아래 명령어를 터미널에 입력해서 스크립트를 실행시킵니다.

$ python3 cgv_crawler.py

 

결과는 아래처럼 나옵니다. (2023년 3월 11일 CGV 용산아이파크몰 기준)

(스크립트 실행하면 크롬이 자동으로 실행될 건데 스크립트 종료될 때까지 가만히 냅둬주세요ㅎㅎ)

 

 

 

# 의존성

Selenium 4.8.2

 

 

# 다른 영화관을 하고 싶으면?

스크립트에서는 CGV 용산아이파크몰(일명 용아맥)로 설정해 뒀는데,

 

만약 다른 지역의 영화관을 설정하고 싶으면 'CGV 홈페이지 > 극장'에서 원하는 극장을 선택한 뒤 해당 URL을 CGV_THEATER_URL 변수에 넣어주세요.

(URL parameter에 date는 지우고 설정해 주세요.)

 

 

# 작업일기

스크립트 만들면서 삽질했던 내용 기록하기 위함이니... 아래 글을 읽지 않아도 스크립트 사용하는데 전혀 문제없습니다ㅎㅎ

 

 

처음엔 BeautifulSoup를 사용하려고 했으나, 예약 가능 날짜 목록이 iframe 안에 있는 #document 쪽에 정의되어 있는 것을 발견했어요.

 

 

 

BeautifulSoup를 사용하면 iframe 안쪽에 있는 내용을 가져올 방법이 없기 때문에 Selenium을 사용했습니다.

(BeautifulSoup에서도 가능한 방법이 있다면 알려주세요ㅠㅠ)

 

 

하지만, Selenium을 사용해도 예약 가능 날짜 목록으로 직접 접근은 불가능하더라구요.

 

그래서 driver.switch_to.frame() 함수를 사용해서 iframe 안에 있는 #document를 읽도록 해주었습니다ㅎㅎ

 

 

뭐... 그 외엔 크게 어려울 것은 없었습니다ㅎㅎ

 


이번 글은 여기서 마무리.

 

 

 

반응형

'기타' 카테고리의 다른 글

맥북에서 LoC 계산  (0) 2023.07.11
launchctl로 주기적으로 프로그램 실행시키기  (0) 2023.03.25
jenkins branch 설정방법  (0) 2023.02.07
스크립트로 Swift 변수값 변경하기  (0) 2023.02.03
내 터미널 설정  (0) 2022.11.23