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
'2023 공부한것들' 카테고리의 다른 글
[python] lfsr 기반, 밀리세컨드 단위 시간을 초기값으로 가지는/ 원하는 자릿수의 otp를 출력하는 코드 만들기 (0) | 2023.06.05 |
---|---|
[야구시뮬레이터] [결과] 모든 투수진 스크래핑해 엑셀 파일로 저장하기 (0) | 2023.06.03 |
[야구시뮬레이터] [과정 ] 01) 선수 명단 스크래핑(python, bs4, pandas) : 0603 (1) | 2023.06.03 |
[python] genie music 차트 스크래핑 후 엑셀 저장 (beautifulsoup/pandas) + user-Agent 헤더(웹 브라우저로 둔갑하기) (0) | 2023.06.03 |
[정보보안] DNS란?/DNS 정보 탈취하기/DNS 유출 예방법 (0) | 2023.03.07 |