プロ野球スタメンデータを15行でスクレイピングする
プロ野球のスタメンデータをスクレイピングします。
毎度お世話になっているプロ野球フリークさんにはスタメンデータがあり、各試合の1番〜9番までのスタメンが記録されています。
今回はこのデータをスクレイピングして、各球団のスタメンデータを15行で作成します。
ライブラリをインポート
まずは今回使うライブラリをインポートします。
import pandas as pd
import matplotlib.pyplot as plt
%matplotlib inline
URL作成
スクレイピングするサイトにアクセスするためのURL文字列を作成します。
ページを分けるURLが球団の頭文字になっていることをうまく利用します。
team = ['s','t','g','c','d','yb','bs','m','e','h','f','l']
body = 'https://baseball-data.com/lineup/'
スクレイピング
for文でurlを作成していくことで各球団のページにアクセスしてデータを取りにいきます。
取ったデータを加工して、pd.concat()でデータを連結していき1つのデータフレームにします。
下のデータフレームの画像のようにスクレイピングしたデータは最終行にもカラム名が入っています。
そのため、取得したデータの最終行を削って、データを連結していくところがミソです。
starter_list = pd.DataFrame()
for t in team:
url = body + t +'.html'
df = pd.read_html(url)
df = df[0]
df = df[:-1]
df['球団'] = t #球団のアルファベットを球団列として追加
starter_list = pd.concat([starter_list,df])
スクレイピング結果
スクレイピングは数秒で終わります。
結果は下図のように12球団の2022年のスタメンデータが取得できます。
ここまで15行でスクレイピングが完了しました。
次はこのスタメンデータの加工をしていけたらと思います。
スクレイピングデータとコードはここから(有料)
今回のスクレイピングのコード(python)と取得した結果のデータをcsvでダウンロードすることができます。
よろしければサポートをよろしくお願いします。サポートいただいた資金は活動費に使わせていただきます。