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

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

1. はじめに

概要

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

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

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

https://www.goal.com/jp/%E3%83%8B%E3%83%A5%E3%83%BC%E3%82%B9/%E3%83%A1%E3%83%83%E3%82%B7%E3%81%AE600%E3%82%B4%E3%83%BC%E3%83%AB%E3%81%8C%E8%89%AF%E3%81%84%E5%88%BA%E6%BF%80%E3%81%AB%E3%82%A2%E3%83%83%E3%83%AC%E3%82%B0%E3%83%AA%E3%81%8Cc%E3%83%AD%E3%83%8A%E3%82%A6%E3%83%89%E3%81%AE%E3%81%95%E3%82%89%E3%81%AA%E3%82%8B%E8%A6%9A%E9%86%92%E3%81%AB%E6%9C%9F%E5%BE%85/13u96oq9nn1id1h0itkh5879l1

利用するWebページ

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


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

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

J1とLaLigaのクラブ間格差を、Pythonで分析でしてみた
NishipyJリーグは、どのチームが優勝する、専門家でも予想が難しいそうです。一方、スペインのLaLigaは、優勝チーム(Barcelona or Real Madrid)や上位に入るであろうチームが、容易く予想できることで有名...(続く)

インポート

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

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をあげておきます
GitHub - nishipy/Messi_Ronaldo_Goals
Contribute to nishipy/Messi_Ronaldo_Goals development by creating an account on GitHub.
  • 次はデータをBigQueryに入れて、Data Portalできれいに可視化します

以上.

コメント