728x90
728x90

 

쓱의 투수진을 출력해보았다

 

import requests
from bs4 import BeautifulSoup
import pandas as pd

# 웹 페이지 URL
url = "http://eng.koreabaseball.com/Teams/PlayerSearch.aspx"

# GET 요청으로 HTML 가져오기
response = requests.get(url)
html = response.text

# BeautifulSoup을 사용하여 HTML 파싱
soup = BeautifulSoup(html, "html.parser")

# 모든 선수 요소를 찾음
player_elements = soup.select('th[title="player"]')

# 모든 선수에 대한 정보를 저장할 리스트
all_players_info = []

for player_element in player_elements:
    player_name = player_element.text.strip()

    # 선수 정보가 있는 table row 찾기
    player_row = player_element.find_parent("tr")

    # 선수 정보 추출
    player_info = {'name': player_name}
    for td in player_row.find_all("td"):
        # 각 td 요소의 title 속성을 가져와서 선수 정보에 추가
        title = td.get("title")
        if title:
            player_info[title] = td.text.strip()

    # 선수 정보를 리스트에 추가
    all_players_info.append(player_info)

# DataFrame 생성
df = pd.DataFrame(all_players_info)

# 엑셀 파일로 저장
df.to_excel('ssg_pitcher.xlsx', index=False)
  • 필요한 라이브러리를 가져왔다: requests, BeautifulSoup, pandas.
  • KBO 선수 검색 페이지의 URL을 url 변수에 저장했디
  • GET 요청으로 해당 URL에서 HTML을 가져왔다. 응답은 response 변수에 저장되었다.
  • response.text를 사용하여 HTML 코드를 가져왔다.
  • BeautifulSoup을 사용하여 HTML을 파싱하고 데이터를 추출할 수 있도록 설정했다.
  • soup.select('th[title="player"]')를 사용하여 선수 요소를 선택했다.
  • 각 선수 요소에서 선수 이름을 추출하고, 해당 요소의 상위 행을 찾아 선수 정보를 추출했다.
  • 선수 정보를 딕셔너리로 저장하고, all_players_info 리스트에 추가했다.
  • 추출한 선수 정보를 pd.DataFrame을 사용하여 DataFrame으로 변환했다.
  • DataFrame을 엑셀 파일로 저장했다.
728x90
300x250

+ Recent posts