728x90
728x90

나머지 사진들은 안 찍음!

 

 

각 팀별로 엑셀 파일 추출 성공!!!!!!!!

 i. 행에서 모든 'td' 태그를 찾는다

 ii. 해당 행의 데이터를 저장할 빈 딕셔너리를 만든다

 iii. 각 'td' 태그에 대해 다음을 수행하는 루프를 시작힌디:

     - 'td' 태그의 'title' 속성을 찾습니다. 이는 야구 통계의 종류를 나타낸다. 예: AVG, G, PA 등).

     - 만약 'title' 속성이 존재한다면, 이 값을 딕셔너리에 추가한다

     - 만약 'td' 태그가 선수의 이름을 나타낸다면 (즉, 'class' 속성이 'stats_player'라면), 이를 딕셔너리에 추가한다

 iv. 완성된 행 딕셔너리를 메인 데이터 리스트에 추가한다.

 

 

 


import requests
from bs4 import BeautifulSoup
import pandas as pd

team_codes = ["sk", "wo", "lg", "ht","nc", "ss","hh","lt","kt","ob"]
for team_code in team_codes:
    url = f"http://eng.koreabaseball.com/Stats/BattingByTeams.aspx?codeTeam={team_code}"
    response = requests.get(url)
    soup = BeautifulSoup(response.content, 'html.parser')

    table = soup.find_all('table')[0]
    data = []
    tr_tags = table.find_all('tr')
    for tr in tr_tags:
        td_tags = tr.find_all('td')
        row = {}
        for td in td_tags:
            title = td.get('title')
            if title:
                row[title] = td.text
            elif 'stats_player' in td.get('class', []):
                row['Player'] = td.text
        if row:
            data.append(row)


    df = pd.DataFrame(data)

    df.to_excel(f'scraped_batters_{team_code}.xlsx', index=False)

 


 

 

여담

 

팀 코드 찾느라 개발자 도구 둘러봤는데, 쓱이 아직 sk였고, 두산이 아직 Ob로 되어있었다 ㅋㅋㅋ

hh한화, ht 기아 , kt 케이티. nc 엔씨, lg 엘지, wo키움 lt 롯데 ss 삼성 

바뀐지 꽤나 된 팀도 있는데 안 바꾸고 뭐하냐 ㅡㅡ

물론 실제 창에서는 저렇게 안 뜸.

 

728x90
300x250

+ Recent posts