GASでWebスクレイピング!競馬データを自動収集してみよう!注意点も解説【ソースコードコピペOK】

GAS(Google Apps Script)講座

今回は、競馬データをスクレイピングしてウェブサイトから簡単に情報を取得する方法をご紹介。

GoogleスプレッドシートとGASを活用して、手軽に競馬データの収集する方法を本記事ではまとめています。

競馬ファンの方々やデータ収集・分析に興味がある方々向けにまとめていますのでぜひ最後までご覧になってください。

スクレイピングに関する注意点
本記事で紹介しているスクレイピング方法は、必ず自己責任で行ってください。
スクレイピングによっては、対象サイトの利用規約に抵触したり、サーバーに過剰な負荷をかけて迷惑をかけてしまうリスクがあります。

スクレイピングを行う際のチェックポイント

  • 利用規約の確認:対象サイトの利用規約を必ず確認し、スクレイピングが許可されているかを確認しましょう。
  • アクセス頻度の調整:短時間に大量のリクエストを送信するとサーバーに負担がかかります。適度なインターバルを設定し、アクセスを分散させるよう工夫してください。
  • 事前の許可:商用利用や大量データの取得が必要な場合は、サイト運営者に事前に許可を取ることが望ましいです。

スクレイピングは適切に利用すれば非常に便利な技術ですが、使用方法を誤ると法律的・倫理的な問題につながることがあります。トラブルを避けるためにも、以上のポイントを守って安全に活用しましょう。

 

\スキルゼロでも自動化できる!/
パソコン1台で業務効率化!GASで“できる人”に。
→ Google Apps Script 講座の購入はこちら
実務に使えるサンプルコード&解説付きで安心!

スクレイピングとは

 スクレイピングとは、ウェブページから情報を抽出する技術のこと。

この技術を使えば、ウェブサイトのデータを自動取得できます。

取得したデータは、自由に加工して分析に利用も可能です。

GASを利用すればスクレイピングも簡単に可能

通常では、高い技術が必要なスクレイピングですがGoogle Apps Script(GAS)を利用すれば比較的簡単に使えます。

そもそもGASとは何かという方のためにGASについておさらいしましょう。

GASって何?

GAS(Google Apps Script)は、Google Workspaceの機能を拡張し、カスタマイズするためのスクリプト言語です。

基本的な使い方や構文を理解することで、スプレッドシートをデータベースのように活用できます。

主な特徴は、以下になります。

作成から実行がすぐにできる

GASは、スクリプト言語と呼ばれるコンパイルをせずに即時実行、展開できる言語。

JAVA言語などのコンパイル言語では、コンパイルと呼ばれるソースコードをアプリに変換する処理が必要です。

GASではそういった変換処理は、一切不要。

作成から修正、実行までのすぐに実施して気軽に改善を行うことができます。

Googleサービスとの連携が簡単

GASは、Googleによって開発されている開発言語になります。

そのため他のGoogleサービス(スプレッドシートやGmail、Googleカレンダーなど)との連携が簡単に行えます。

Googleサービスの機能拡張を図りたい方やGoogleサービスを連携したい方にはおすすめの言語です。

無料で利用可能

GASは、最大の特徴として無料で利用できます。

他のGoogleのサービスであるスプレッドシートやGmail、ドキュメントなどと同様に、GASも無料で利用できます。

追加の費用をかけることなく、さまざまなGoogleサービスとの連携を通じて、自動化やカスタマイズされた機能を作成することが可能。

競馬データをスクレイピングしてデータを分析してみよう!

それでは、GASを利用して競馬データの収集アプリを開発する方法をご紹介していきます。

事前準備、プログラミング、動作確認の流れで説明していきます。

事前準備:取得対象URLの構造を理解しよう

まずは、データ取得元の競馬データサイトを確認します。

今回は、JRAの競馬サイト(https://www.jra.go.jp/datafile/seiseki/)を見てみましょう。

このサイトには、年ごとのレース結果がまとめられているようですね。

年を選択するとその年のレース一覧が表示されレース結果のボタンを押すと個々のレース結果が表示されます。

2024年を選択してみます。

レース結果を選択してみましょう。

レース結果として順位や馬名、騎手名などの情報が一覧で表示されます。

今回はこのレース結果をスクレイピングで一括取得してみようと思います。

ここで重要になるのはURLです。

URLはブラウザの上部に表示されている「http」から始まる文字列です。

インターネット上でのウェブサイトの住所のようなものです。

スクレイピングではURLとHTML構造を参考にして何を取得できるか考えます。

続きを読む

このコンテンツはパスワードで保護されています。 コンテンツを読みたい方はITツールの匠ストア(https://it-tool-takumi.stores.jp/)で講座閲覧権を取得してね。

ITツールの匠ストア「GASでWebスクレイピング!競馬データを自動収集してみよう!注意点も解説【ソースコードコピペOK】」はこちら >>

動作確認

作成したツールが正常に動作するか確認してみましょう。

データ取り込みシートにて取込年度を入力して取り込み開始をクリックします。

今回は、2024年を指定してみます。

初回の動作実行時は、権限の確認が表示されます。

指示に従って許可をしておきましょう。

取得結果が「2024」というシートが作成されて競馬結果が格納されていれば成功です。

結構時間がかかるのでしばらく待ちましょう。

応用:検索機能を搭載

今回は、スクレイピングしたデータを検索する機能も応用編として作っていきます。

検索項目は複数あり、競馬場・天候・コース種別・距離・馬名・騎手名など、条件を組み合わせて絞り込みが可能です。

以下のコードをソースの最下行に追記し保存してください。

なぜ normalize() が必要?
スプレッドシートでは、見た目が同じに見えるテキストでも「前後に空白がある」「全角と半角が混じっている」などの違いがあると、
=QUERY関数では一致しないことがあります。このnormalize()関数を通すことで、以下のようなトラブルを防止できます:

  • 「中山 」←末尾スペースつき → マッチしない
  • 「藤岡 佑介」←全角スペース → マッチしない
  • 数字を入力したのに、文字列と扱われてエラーになる

正しく絞り込むために、normalize()を含めときましょう。

記入ができたら先程と同様の手順で「検索」シートの検索ボタンにスクリプト割当で search を設定します。

スクリプト割当

設定が完了したら、検索条件を入力し、「検索」ボタンをクリックしてみましょう。

検索実行

検索結果が表示されれば成功です。

検索結果

まとめ

今回は、GASを使ってJRAの競馬データを取得する方法をご紹介しました。

本記事の内容をまとめると以下。

  • スクレイピングとは、Webサイトから特定の情報を自動的に収集する処理のこと。
  • GASは、無料で簡単に利用できスクレイピングも簡単に構築が可能。
  • JRAの競馬データからレース結果を取得する方法をご紹介。
  • 応用編として取得結果から必要な情報を検索する方法も合わせてご紹介。

スクレイピングは、人力だと非常に手間な作業を自動的に行ってくれる便利な処理です。

今回取得したJRAの競馬データ以外にも各所の競馬データを取得して分析してみればより信頼度の高い結果を得られるかもしれません。

ぜひ、興味が湧いた方は今回の内容を参考に挑戦してみてください。

ただし必ず自己責任で行ってください。

スクレイピングによっては、対象サイトの利用規約に抵触したり、サーバーに過剰な負荷をかけて迷惑をかけてしまうリスクがあります。

 

\スキルゼロでも自動化できる!/
パソコン1台で業務効率化!GASで“できる人”に。
→ Google Apps Script 講座の購入はこちら
実務に使えるサンプルコード&解説付きで安心!

タイトルとURLをコピーしました