본문 바로가기
IT 로그/Python

[Web Crawler] 파이썬 2020년 포스트 시즌 야구 경기 일정 크롤링

by 잡다무니 2020. 11. 16.

안녕하세요. 잡다무니입니다.

 

파이썬 크롤링을 이용한 KBO 야구 경기 일정 데이터를 수집하는 웹 크롤러를 만들어 보려고 합니다.

 

웹 크롤러(web crawler)는 조직적, 자동화된 방법으로 월드 와이드 웹을 탐색하는 컴퓨터 프로그램이다.

KBO 야구 경기 일정 데이터는 KBO 기록실 사이트를 이용합니다.

 

KBO 홈페이지

KBO, 한국야구위원회, 프로야구, KBO 리그, 퓨처스리그, 프로야구순위, 프로야구 일정

www.koreabaseball.com

개발을 위해서 파이참(PyCharm)크롬(Crome) 웹 드라이버를 이용하였습니다.

"경기일정/결과" 첫 페이지(2020.11.16 기준)인 KBO 포스트 시즌 일정 웹 크롤러를 만들어 보았습니다.

차후에 KBO 2020년 정규 시즌 경기 일정 크롤러도 해볼 예정입니다. 

from bs4 import BeautifulSoup
from selenium import webdriver
import pandas as pd

driver = webdriver.Chrome('chromedriver의 위치 경로')
url = driver.get('https://www.koreabaseball.com/Schedule/Schedule.aspx')
html = driver.page_source
soup = BeautifulSoup(html, 'html.parser')

searchList = []
tblSchedule = soup.find('table', {'class': 'tbl'})
trs = tblSchedule.find_all('tr')
for idx, tr in enumerate(trs):
    if idx > 0:
        tds = tr.find_all('td')
        temp = [tds[0].text.strip(), tds[1].text.strip(), tds[2].text.strip()]
        searchList.append(temp)

data = pd.DataFrame(searchList)
data.columns = ['day', 'time', 'play']
data.head()
data.to_csv('2020년_포스트시즌_일정.csv', encoding='cp949')

 

내용이 간단해서 설명은 없습니다.

 

Beautiful Soup(뷰티플 수프)는 HTML과 XML 문서를 파싱 하기 위한 파이썬 패키지입니다.
Selenium(셀레늄)은 웹 애플리케이션 테스트를 위한 포터블 프레임워크입니다.

 

웹 크롤러의 단점은 모니터링이 필요하다는 점입니다.

웹 페이지가 변경되면 코드를 필히 변경해야 될 것입니다.

 

아주 간단하게 2020년 포스트 시즌 웹 크롤러를 만들었습니다.(첫 페이지 웹 크롤러입니다.)

2021년 시범 일정이나 정규 일정이 시작되면, 수정해야 될 것 같습니다.

 

위 코드 블록을 보면, GUI를 컨트롤하는 소스가 없기 때문입니다~

 

짧은 글이지만 봐주셔서 감사합니다.

 

출처: 위키백과, 용어 정의 {"웹 크롤러", "Beautiful Soup", "Selenium"}, 2020.11.16 기준.

댓글