from selenium import webdriver
from selenium.webdriver.common.by import By
import csv
driver = webdriver.Chrome()
try:
driver.get('https://www.koreabaseball.com/Player/RegisterAll.aspx')
# 선수 이름을 저장할 리스트 - 크롤링 일자 기준 1군 등록된 포수, 내야수, 외야수
player_names = []
# 선수 이름을 찾는 코드
for i in range(1, 10):
catchers = 'td:nth-child(5) > ul > li:nth-child({})'.format(i)
catchers = driver.find_elements(By.CSS_SELECTOR, catchers)
for player in catchers:
player_names.append(player.text)
for i in range(1, 10):
infielders = 'td:nth-child(6) > ul > li:nth-child({})'.format(i)
infielders = driver.find_elements(By.CSS_SELECTOR, infielders)
for player in infielders:
player_names.append(player.text)
for i in range(1, 10):
outfielders = 'td:nth-child(7) > ul > li:nth-child({})'.format(i)
outfielders = driver.find_elements(By.CSS_SELECTOR, outfielders)
for player in outfielders:
player_names.append(player.text)
# CSV 파일로 저장
with open('players.csv', 'w', newline='', encoding='utf-8') as file:
writer = csv.writer(file)
writer.writerow(['PlayerName'])
for name in player_names:
writer.writerow([name])
finally:
driver.quit()
OPS 는 타자들의 지표이기 때문에 투수를 제외한 타격이 가능한 모든 선수 명단이 필요함.
크롤링 당일 기준 1군 등록된 포수, 내야수, 외야수 크롤링하여 csv 파일로 생성하는 코드
+ 동시에 2군 선수들 명단도 추가 예정
+ 이름을 제외한 등 번호 삭제 전처리 필요
** 비전공자 이기 때문에 코드가 더러워보일 수 있음.
이렇게 수정하면 더 좋을거 같다라고 생각 되시면 언제든 태클 걸어주세요!
알려주시면 더 열심히 잘 배우겠습니다.
'Project' 카테고리의 다른 글
[2024 KBO 타자 별 OPS 예측 모델 개발] KBO 타자들의 역대 기록 크롤링 [ ** utf-8 vs utf-8-sig ] (0) | 2024.04.08 |
---|---|
[2024 KBO 타자 별 OPS 예측 모델 개발] 예측 해야 할 타자 리스트 작성 2 (0) | 2024.04.08 |
[2024 KBO 타자 별 OPS 예측 모델 개발] 프로젝트 기획안 (0) | 2024.04.08 |