メッシの全600ゴールデータをスクレイピングする

Python
Nishipy
メッシとロナウドがクラブ通算600ゴール達成したらしいので、これまでの得点データをスクレイピングしてみます。

1. はじめに

概要

2019年5月1日、チャンピオンズリーグ準決勝のリバプール戦において、メッシがクラブ通算600ゴールを達成しました。これを記念して、メッシのクラブにおける全得点データをスクレイピングにより取得してみます。

初得点から14年…通算600ゴール到達のメッシを10の数字で振り返る | サッカーキング
 バルセロナのアルゼンチン代表FWリオネル・メッシが、クラブキャリア通算600ゴールを達成した。  5月1日に行われた、チャンピオンズリーグ(CL)準決勝ファー···

ロナウドも、この数日前の4月27日に通算600ゴールを達成しています。ちなみに、メッシは683試合で、ロナウドは801試合で600ゴールらしいです。どっちもすごいけど、メッシの異常さが際立ちます。

「メッシの600ゴールが良い刺激に…」アッレグリがC・ロナウドのさらなる覚醒に期待 | Goal.com
ユヴェントスのマッシミリアーノ・アッレグリ監督は、クリスティアーノ・ロナウドがバルセロナのリオネル・メッシの活躍に触発されることを期待した。1日に行われたチャンピオンズリーグ準決勝のリヴァプール戦で、メッシは芸術撃なFK弾を含む2ゴールを挙げて、バルセロナの3-0の勝利に大きく貢献。さらに、このゴールでクラブ通算得点数...

利用するWebページ

transfer marktに掲載されているこちらのデータを利用させて頂きます。


2. Messiの全得点データ取得

以前↓でやったこととだいたい同じです。

J1とLaLigaのクラブ間格差を、Pythonで分析でしてみた[Python]
Jリーグは、どのチームが優勝する、専門家でも予想が難しいそうです。 一方、スペインのLaLigaは、優勝チーム(Barcelona or Real Madrid)や上位に入るであろうチームが、容易く予想できることで有名です。 今回は、統計学の基礎であるローレンツ曲線を書くことで、上記2つのリーグを比較してみました。

インポート

今回使う予定のライブラリをインポートします。

HTMLの取得

urllib.request.Request()で、headersにユーザーエージェントを設定して、HTMLを取得します。

必要なデータを抽出

Beautiful Soupを使って、必要なデータだけを抽出します。

CSVファイルとして出力

今回は、各ゴールについてType of goalまでのデータを取得することにしました。よって、Type of goalが出現したら、次のゴールのデータであると判断してます。
元のデータが複雑なので、ここで出力したCSVファイルは、あとで適切に修正します。


CSVファイルの修正

  • Unnecessaryを削除
    Unnecessaryとしておいた、不要なカラムを削除します。

  • 欠損値の穴埋め
    PositionおよびTypeOfGoalに欠損値があるようでした。メッシはRWで出場し、左足でゴールを決めることが多いことを想定して、欠損値の穴埋めを行います。

  • 修正版CSVファイルの出力
    修正が完了したので、再度出力します。

こんな感じに仕上がりました。

 


3. Ronaldoの全得点データ取得

ついでなので、ロナウドのデータも取得しておきます。ロナウドのデータはこちらにありました。前章と同様にすると、こんな感じで取得できました。


 

4. 最後に

  • 汚いコードで恥ずかしいですが、GitHubにもNotebookをあげておきます
nishipy/Messi_Ronaldo_Goals
Contribute to nishipy/Messi_Ronaldo_Goals development by creating an account on GitHub.
  • 次はデータをBigQueryに入れて、Data Portalできれいに可視化します

以上.

コメント