안녕하세요. 잡다무니입니다.
파이썬 크롤링을 이용한 KBO 야구 경기 일정 데이터를 수집하는 웹 크롤러를 만들어 보려고 합니다.
웹 크롤러(web crawler)는 조직적, 자동화된 방법으로 월드 와이드 웹을 탐색하는 컴퓨터 프로그램이다.
KBO 야구 경기 일정 데이터는 KBO 기록실 사이트를 이용합니다.
개발을 위해서 파이참(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 기준.
'IT 로그 > Python' 카테고리의 다른 글
[API] 파이썬과 구글 API Spreadsheet 활용 Google APIs (0) | 2020.11.26 |
---|---|
[Web Crawler] 파이썬 2020년 정규 시즌 야구 경기 일정 크롤링 (0) | 2020.11.22 |
[설치] 파이썬 (Python)과 파이참 (PyCharm) 설치 (0) | 2020.11.15 |
댓글