New Python プログラミング

【Python】スポーツナビから海外サッカーの得点ランキングをスクレイピング

2021-07-12

みなさん、こんにちは。いし(@ishilog2)です。

今回はPythonを用いて、Yahoo SportsNaviから海外サッカーの順位表をスクレイピングにて取得したいと思います。

導入編

今回のコードではrequestsとBeautifulSoup、Pandasを使用します。
インストールしていない方はインストールして下さい。

実践

スポーツナビ(https://soccer.yahoo.co.jp/ws/stats/52)から順位表を取得します。

サンプルコード

結果

 

解説

① requestsを用いてHTMLを取得
requests.get('URL')でHTML情報を習得します。

② BeautifulSoupを使用してhtml形式にパース
①で習得したHTMLからBeautifulSoupオブジェクトを作成します。

③ sn-table sn-table--rankingStatsクラスの文字列を取得
④ 取得した内容をリストに格納
リスト内表記を使用して、習得したデータをリストに格納・リスト内の要素の前後にある空白を削除します。splitlines()で改行コードで分割して、strip()で空白を削除します。
ただこれだと見づらいのでリスト内の空白要素を削除します
⑤ リストを分割
6個ずつに分割しています。

⑥ リストをデータフレームへ変換
pd.DataFrame()でリストからデータフレームへ変換します。
リスト1つ目はヘッダーのため2つ目からをデータフレームにしています。カラムにはリスト1つ目を設定します。

【おまけ】各リーグコード

リーグ名 番号
イングランド プレミアリーグ 52
スペイン ラ・リーガ 67
ドイツ ブンデスリーガ 56
イタリア セリエA 53
フランス リーグアン 54
オランダ エールディビジ 2
ベルギー ベルギーリーグ 48
ポルトガル ポルトガル・リーグ 69

 

-New, Python, プログラミング
-, ,