해당 프로젝트는
강의를 참고하여 진행하였다. 파이썬 웹크롤링의 기본적인 requests와 bs4를 이용하였으며,
데이터를 구조화하는데 있어서 padas 라이브러리를 사용하였다.
import requests
from bs4 import BeautifulSoup
import pandas as pd
import time
headers = {'User-Agent' : "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/103.0.0.0 Safari/537.36"}
url = "https://www.transfermarkt.com/spieler-statistik/wertvollstespieler/marktwertetop"
r = requests.get(url, headers=headers)
r.status_code
# BeautifulSoup()으로 웹페이지 분석하기
soup = BeautifulSoup(r.text, 'html.parser')
# 선수들의 정보가 담긴 태그와 클래스 찾기
player_info = soup.find_all('tr', class_ = ['odd','even'])
# 7개 정보(이름, 나이, 소속팀, 몸값 등등)를 담을 빈 리스트 만들기
number = []
name = []
position = []
age = []
nation = []
team = []
value = []
# player_info에서 'td' 태그만 모두 찾기
for info in player_info:
player = info.find_all("td")
# 해당 정보를 찾아서 각 리스트에 추가하기
number.append(player[0].text)
name.append(player[3].text)
position.append(player[4].text) # 들여쓰기 주의!
age.append(player[5].text)
nation.append(player[6].img['alt']) # 태그의 특정 속성 값을 뽑아내는 코드, 딕셔너리 문법 사용( 속성 : key, 값 : value)
team.append(player[7].img['alt'])
value.append(player[8].text.strip())
트랜스퍼마르크트 사이트를 url 변수로 담아 requests 요청을 받고 bs를 통해 웹페이지 소스를 받아온다.
반복문과 bs의 find 메서드를 사용하여 특정 태그 값을 List 형태로 반환할 수 있다.
- \xa0는 NBSF(줄 바꿈 없는 공백)이라는 문자열에 들어가는 공백 문자이다.
이를 제거하기 위해서 strip() 내장 함수를 사용한다.
- requests 라이브러리를 복습함과 동시에 흥미로운 주제인 축구와 접목하여 데이터를 분석하는 방법을 배울 수 있었다. 또한 필요한 tag 값을 추출하여 데이터를 저장하는 작업도 배우게 되었다.
'사이드 프로젝트 > 축구선수 몸값 웹 크롤링' 카테고리의 다른 글
축구선수 몸값 분석 웹 크롤링 (6) - Bootstrap으로 html 꾸미기 (1) | 2022.07.12 |
---|---|
축구선수 몸값 분석 웹 크롤링 (5) - 선택조건 체크박스 추가 및 데이터 처리 (0) | 2022.07.11 |
축구선수 몸값 분석 웹 크롤링 (4) - 입력 범위 수정 및 Index 열 삭제 (0) | 2022.07.08 |
축구선수 몸값 분석 웹 크롤링 (3) - 서버 연동하기 (0) | 2022.07.07 |
축구선수 몸값 분석 웹 크롤링 (2) (0) | 2022.07.02 |