매일 퇴근하고 한시간정도 짬을 내서 프로젝트를 붙잡고 있었는데
집중을 잘 못해서 몇 줄 쓰고 딴짓하기를 반복하다가
드디어 오늘 조금 진도가 나갔기에 기록을 남긴다🎉
화면을 만들기 전에 일단 사용할 데이터를 준비하려고 수업시간에 배웠던 requests 라이브러리와 beautifulSoup를 이용해 PC 인터파크 티켓과 PC YES24 티켓 페이지를 스크래핑하는데...
![]() |
|---|
iframe이라는 예상치 못한 복병이 등장한다.
언뜻 보기에는 id가 있으니 #iFrmNotice로 셀렉트해서 하위 요소를 가져올 수 있을 것 같았는데
생각처럼 잘 되지 않았다.
그래서 iframe 크롤링으로 검색을 해보니, selenium 라이브러리를 사용하면 이런 문제를 해결할 수 있다고 하여 구글링 끝에 원하는 데이터를 러프하게... 가져올 수 있게 되었다.
생각보다 스크래핑 엄청 손이 많이 간다...😢
이제 내가 원하는 방식으로 db에 쌓기 위해서 어떤 데이터가 필요한지 대략 생각해봤고 다음과 같다.
5번을 그냥 퉁치긴 했는데 좀 더 자세히 생각해야겠지...
공연정보는 공연정보대로 받아와서 공연정보 테이블에 쌓고 티켓오픈 정보는 티켓오픈 테이블에 쌓아서 데이터 보여줄때는 조인걸어도 좋겠다. 물론 mongoDB 스파르타에서 첨 써봐서 조인하는 법부터 찾아봐야함😂... RDBMS 쓰고싶다...
그리고 티켓오픈 알림이 목적이니까 DB에 필요없는 데이터는 스케줄러로 삭제해주면 좋을 듯 하다.
(ex. 종료된 공연정보, 티켓오픈 취소, 티켓오픈일이 지난 티켓오픈정보 이건 좀 더 생각해보자... 티켓오픈일은 지났어도 예매는 가능하고 오히려 티켓오픈일 지났군? 그럼 천천히 예매하지뭐, 하고 잊어버린 경우가 훨씬 많았다)
또, 티켓오픈일정이 변경되는 경우도 있는데 이럴때는 어떻게 할지도 고민이 필요하다.
변경/취소라는 문구가 있으면 해당 공연만 오픈일을 한번 더 찾아서 업데이트 쳐줄지... 그럼 스케줄러 주기는 어떻게 해야하나🙃
그래서 간략 TODO 리스트는 이러하다.
알림이 메인이었는데😂... 안되면 메일이라도 보내자!
일단 일요일까지 스케줄러 구현하기!