YES24 티켓의 오픈일 정보를 추출해 엑셀 파일로 저장하는 작업을 파이썬으로 작성을 해보려 합니다. selenium을 사용할 필요도 없고 그냥 request로 데이터를 조회해서 크롤링한 후 엑셀로 저장한다고 생각하시면 됩니다. 이처럼 인터파크티켓이나 멜론티켓도 웹사이트에서 필요한 데이터를 크롤링하는 작업을 하고 엑셀로 관리하는게 일일이 들어가서 조회하는것보다 나은 생산성이 있어서 저는 이렇게 합니다.
작업 과정
원래는 YES24티켓 사이트에 접속해서 오픈일자별로 데어터를 조회하고 정보를 추출했는데 어느순간 인터파크티켓도 확인이 필요하고 멜론티켓, 티켓링크등 확인해야 할 사이트가 많아지다보니 단순작업을 파이썬으로 하게되었습니다.
1). 라이브러리 설치
requests와 BeautifulSoup 라이브러리로 웹페이지 데이터 크롤링하고 openpyxl 라이브러리로 엑셀 파일 생성을 생성합니다.
pip install requests beautifulsoup4 openpyxl
2). 크롤링 대상 확인
YES24 티켓 오픈일 정보가 포함된 페이지 URL 및 HTML 구조 분석해서 원하는 구조로 데이터를 조회합니다.
3). 파이썬 스크립트 작성
페이지에서 제목, 공연명, 오픈일 등 필요한 정보를 추출해서 추출된 데이터를 엑셀 파일로 저장
전체적인 작업방향은 이렇게 정했고 이제 프로그램을 진행해 보도록 하겠습니다.먼저 YES24티켓에 들어가 오픈일 순으로 클릭하면 데이터가 아래처럼 나옵니다.
위의 화면을 크롬 개발자도구를 열어놓고 다시 조회하면 아래와같이 조회시 필요한 URL을 찾을 수 있습니다.
저기 보이는 URL을 크롤링해서 데이터를 찾으면 1차적으로 데이터 확인이 완료됩니다. DOM구조를 확인해보면 noti-tbl 클래스안네 table구조로 tr 태그안에 존재하는것이 보입니다.
이제 개발을 시작해 보겠습니다. 우선 위의 데이터 형식이라는것을 확인했으니 html 템프 데이터로 작업을 진행합니다.
data="""
<div class="noti-tbl">
<table>
<colgroup>
<col width="13%">
<col width="57%">
<col width="18%">
<col width="12%">
</colgroup>
<tbody>
<tr>
<th scope="col">구분</th>
<th scope="col">제목</th>
<th scope="col">티켓오픈 일시</th>
<th scope="col">조회수</th>
</tr>
<tr>
<td>
티켓오픈
</td>
<td>
<a href="#id=1072"><em>[부산] 뮤지컬 시카고</em></a>
</td>
<td>
2024.10.24(목) 14:00</td>
<td>
1,841
</td>
</tr>
<tr>
<td>
티켓오픈
</td>
<td>
<a href="#id=15113"><em>단독판매</em><em>콘서트 [투가이즈쇼]</em></a>
</td>
<td>
2024.11.01(금) 14:00</td>
<td>
1,792
</td>
</tr>
</tbody>
</table>
</div>
"""
먼저 위의 데이터를 보면 우리가 필요한것은 tr 태그의 td 부분임이 보이고 첫번째 데이터는 th 헤더값이다 보니 이 부분은 제외하고 데이터를 추출하면 되겠다고 느껴집니다.
위의 DOM 구조에서 보면 td의 두번째 값이 타이틀이고 세번째 값이 오픈일시 그리고 마지막 네번째 값이 조회수로 확인이 되니 파이썬에서 td의 N번째 값을 조회할 수 있는 td:nth-child를 이용해서 데이터를 찾을 수 있습니다. 좌,우 공백을 없애기 위해 strip를 사용했습니다. 문자열의 시작과 끝에서 공백을 제거한 후 반환하기 위해 strip()함수를 사용했습니다.
이제 이 데이터를 엑셀로 저장하기만 하면됩니다. 엑셀 저장부분은 그리 어렵지 않기 때문에 간략히 정리합니다.
데이터를 담을 빈 리스트를 설정하고 조회한 데이터를 리스트에 추가한 Dataframe으로 처리하면 끝납니다.
간략하게 큰 틀을 알아봤습니다. 이해가 안가거나 구체적인 구현방향이 궁금하면 문의해 주세요.
같이보면 좋은 글
'정보마당' 카테고리의 다른 글
파이썬 parse_qsl 사용법과 원리및 구조 파악 하기 (1) | 2024.11.22 |
---|---|
중고 노트북 구매 시 꼭 피해야 할 실수 총정리 (1) | 2024.11.20 |
2025 슈퍼주니어 예성 콘서트 일정 및 티켓 예매 정보 안내 (0) | 2024.11.18 |
프롬 단독 콘서트 Arrival on the moonbow 일정 및 티켓 예매 정보 안내 (1) | 2024.11.16 |
2025 장윤정 라이브 콘서트 부산 일정 및 티켓 예매 정보 안내 (2) | 2024.11.15 |