見出し画像

プロ野球スタメンデータを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でダウンロードすることができます。

ここから先は

24字 / 2ファイル
この記事のみ ¥ 150
期間限定 PayPay支払いすると抽選でお得に!

よろしければサポートをよろしくお願いします。サポートいただいた資金は活動費に使わせていただきます。