logo
languageJPdown
menu

【2026最新】プロ野球データをCSVで取得する方法|AI利用可能

star

プロ野球データをCSVで取得する方法を解説。WikipediaとGitHubの公開データをOctoparseのAI自動検出で収集し、Excel・Pythonで分析する手順、NPBスクレイピングの規約・著作権・出典管理の注意点まで初心者向けに紹介します。

約7分で読めます

プロ野球データをCSVで取得するには、最初からCSVで公開されているデータを利用する方法と、Webページ上の表をCSVへ変換する方法があります。順位表や年度別成績がWebページにしかない場合でも、利用条件を確認したうえでOctoparse(オクトパース・オクトパス)のAI自動検出を使えば、プログラミングなしで表を認識し、CSVやExcelへ出力できます。

この記事では、具体的な例を通じて、プロ野球データを収集・整形する具体的な手順を紹介します。さらに、Excelでの集計方法、Pythonのpandasを使った分析例、NPB関連サイトをスクレイピングするときの注意点まで解説します。

teamseasongameswinslosseswinning_pct
Team A202514378620.557
Team B202514373660.525
Team C202514369700.496
プロ野球データをCSVへ整形した場合の出力イメージ。数値は説明用のサンプルです。

プロ野球データをCSVで取得する方法は?

プロ野球データをCSVで取得する方法は、大きく3つに分かれます。最初に公式配布や公開データセットを確認し、それだけでは必要な項目がそろわない場合にWebスクレイピングを検討するのが基本です。

取得方法向いているケースメリット注意点
公開CSV・JSON必要な年度・項目がすでに公開されているダウンロード後すぐ分析できる更新日、出典、ライセンスを確認する
WebページをOctoparseで取得順位表や成績がHTML表として掲載されているノーコードで列を選びCSV化できる利用規約、robots.txt、アクセス頻度を確認する
Pythonで取得・分析独自処理や再現可能な分析基盤を作りたい整形・計算・可視化を細かく制御できるコードの開発と保守が必要

公開CSVが要件を満たすなら、スクレイピングを行う必要はありません。一方、複数年度の表を同じ列構成で集めたい、画面上の項目だけを定期的に保存したい、Excel担当者が自分で取得条件を変更したい場合は、Octoparseが候補になります。

プロ野球データを取得できるサイト・データセット

データ源は、情報量だけでなく、形式、更新頻度、再利用条件、自動取得の可否で選びます。以下は2026年8月時点で確認した代表例です。利用条件は変わる可能性があるため、実行前に各サイトの最新情報を確認してください。

データ源主な情報形式本記事での扱い
Wikipedia年度、球団、順位、関連記録HTML表CC BY-SAの条件を守り、表抽出の実例に使用
Nippon Baseball Data Repository選手、試合、順位、スケジュール等JSON、リリースファイル等リポジトリ指定の出典表示を行い、公開データの実例に使用
NPB公式サイト公式記録、試合日程、順位、個人成績Webページ権威性の高い確認元。自動取得は事前に利用条件と許諾を確認
Baseball-Reference日本プロ野球を含む各種成績Webページ自動アクセスに関する制限があるため操作例には使用しない
その他の民間データサイト速報、独自指標、選手・試合情報Webページ、API等各社の規約と契約条件を個別に確認

GitHubのリポジトリが公開されていても、すべてのデータが無条件で商用利用できるとは限りません。ソースコードのライセンスと、元になった試合記録・選手情報の権利は分けて確認します。分析結果を公開する場合は、リポジトリが指定するクレジットとデータ取得日を残すと、出典を追跡しやすくなります。

プロ野球データをCSVにする手順

プロ野球の順位表や選手成績を毎回手作業でコピーしていると、年度・チームごとのデータ整理に時間がかかり、定期的な比較や分析も難しくなります。Octoparseなら、コードを書かずにWebページ上の表や一覧データを自動で取得し、ExcelやCSVなどの形式にまとめることができます。

たとえば、baseball-data.comの年度別ページから順位、勝敗数、勝率など必要な項目を選択し、複数年度のデータをまとめて取得することも可能です。ページ送りや複数URLの処理にも対応しているため、毎年の順位変化やチーム別成績を比較したい場合でも、手作業で転記する負担を減らし、分析に使えるデータを効率よく準備できます。

まず試してみたい場合は無料プランから利用できます。 無料プランは0円で、最大10個のタスクを作成でき、ローカル環境でデータ収集を実行できます。また、月間最大50,000行までデータをエクスポートできるため、まずは特定年度の順位表や選手データなど、小規模なプロ野球データ収集から実際の操作を試すことができます。大量データの定期取得やクラウド上での自動実行が必要になった段階で、有料プランへの切り替えを検討できます。

ここでは、baseball-data.comに掲載されている日本プロ野球の年度別ページから、データをCSVにします。

プロ野球データ取得

手順1.対象ページと必要な項目を決める

取得前に、分析目的から必要な列を決めます。順位推移を比較するなら、年度、リーグ、順位、球団名、試合数、勝数、敗数、引分数、勝率が基本です。ページに表示されている脚注や注釈は別列にするか、分析に不要なら除外します。

手順2.OctoparseへURLを入力する

Octoparseを起動して新規タスクを作成し、対象となる年度別ページのURLを入力します。ページの読み込みが完了したら「Webページのデータを自動検出」を実行します。AI自動検出が表の行を同じデータグループとして認識すると、球団ごとのレコードがプレビューに表示されます。

URLを入力

手順3.ページを自動検出

ウェブページのデータを自動検出をクリックし、データを自動検出します。自動検出結果から、必要な順位表を選択します。

ウェブページのデータを自動検出
データを自動検出

手順4.データの収集を始める

「ワークフローを生成」をクリックしてから、「実行」をクリックし、実行環境についてここでローカル環境を選びました。

最初はローカル収集を選び、少数のページだけを実行します。取得件数、空欄、重複、球団名と数値の対応を確認してください。更新を継続する場合は、利用プランと対象サイトの条件を確認したうえでクラウド収集やスケジュール実行を検討します。

「実行」をクリック

複数年度を比較する場合は、取得対象URLをCSVまたはExcelにまとめ、Octoparseへ一括インポートします。各年度のページ構造が同じかを2~3ページでテストし、年度を識別できるようにページURLまたは固定値を出力列へ追加します。

年度によって表の列順や名称が異なる場合は、一つのタスクで無理に処理せず、構造ごとにタスクを分けるほうが列ずれを防げます。

手順5.CSVまたはExcelへ出力する

結果に問題がなければ「エクスポート」を選択し、CSVまたはExcel形式で保存します。OctoparseはCSV、Excel、JSON、HTMLなどの出力に対応しています。Pythonで扱うならCSVまたはJSON、担当者が画面上で確認するならExcelが分かりやすい選択です。

データを確認
データをエクスポート

関連記事:

Octoparseの使い方【2026年版】初心者がゼロから5分でデータ収集できる完全ガイド

プロ野球データをExcelで分析する方法

プロ野球データをExcelで分析する場合、最初に列の型と表記をそろえます。Webページから取得した値は、数字に見えても文字列として保存されることがあります。勝数や試合数を数値へ変換し、勝率の「.557」と「0.557」、球団名の全角・半角、年度表記を統一してください。

  1. CSVをUTF-8として読み込み、文字化けがないか確認する
  2. 試合数、勝数、敗数、得点などを数値型に変換する
  3. 重複行と空欄を確認し、処理ルールを決める
  4. ピボットテーブルで年度別・球団別に集計する
  5. 折れ線グラフで勝率や得点の推移を可視化する

例えば、行に年度、列に球団、値に勝率を設定すると、球団別の長期推移を比較できます。元データを直接編集せず、「raw」「clean」「analysis」の3シートに分けると、再取得したデータとの差し替えも容易です。

プロ野球データ分析をPythonで行う方法

プロ野球データ分析をPythonで行うなら、pandasでCSVを読み込み、列の型を変換してから集計します。以下は、球団別の平均勝率を計算する最小例です。

import pandas as pd

df = pd.read_csv("npb_standings.csv", encoding="utf-8-sig")

numeric_columns = ["season", "games", "wins", "losses", "winning_pct"]
for column in numeric_columns:
    df[column] = pd.to_numeric(df[column], errors="coerce")

df = df.drop_duplicates(subset=["season", "league", "team"])

team_summary = (
    df.groupby("team", as_index=False)
      .agg(
          seasons=("season", "nunique"),
          average_winning_pct=("winning_pct", "mean"),
          total_wins=("wins", "sum")
      )
      .sort_values("average_winning_pct", ascending=False)
)

print(team_summary)

取得元ごとに球団名が異なる場合は、名称変換用の辞書を作ります。勝率やOPSなど既存の指標を利用するときは、列の定義と計算式がデータ源間で一致しているか確認してください。欠場、規定打席、リーグ再編などの条件を無視すると、数値が正しくても比較の意味が変わります。

グラフを作る場合は、matplotlibやseabornを利用できます。まずExcelで欠損や表記揺れを目視確認し、再現性が必要な処理をPythonへ移す方法も実務的です。Pythonスクレイピングの基礎は「Pythonでスクレイピングする手順」も参考にしてください。

AIでプロ野球データを活用するには?

AIは、プロ野球データの取得許可を判断する仕組みではありませんが、収集後の列名統一、欠損候補の発見、分析コードの下書き、集計結果の説明に活用できます。OctoparseのAI自動検出でWeb上の表を構造化し、CSVへ出力したあと、ChatGPTなどへ列定義と分析目的を伝える流れが分かりやすいでしょう。

それに、OctoparseはMCP機能に対応しており、ChatGPTやClaudeなどのAIツールから、野球データの取得から分析までを一連の流れで進めることができます。たとえば、試合結果、選手成績、打率、防御率、チーム順位など、分析したい項目をAIに指示すると、OctoparseのMCPを通じて対象Webサイトから必要なデータを取得し、そのままAIに集計・比較・傾向分析を依頼できます。

従来のように、Webサイトからデータを収集してCSVに保存し、別の分析ツールへ読み込む作業を繰り返す必要がありません。「データを集める → 整理する → 分析する → 結論を出す」までをAIとの対話の中で進められるため、選手比較、試合傾向の把握、チーム別パフォーマンス分析などをより効率的に行えます。

ただし、AIが生成した結論は元データと計算式で検証する必要があります。選手評価や将来予測では、サンプル数、所属リーグ、球場差、年齢、出場機会などの条件も確認してください。個人情報や契約上保護されるデータを外部AIへ送信しないことも重要です。

関連記事:

MCP とは?3分で設定完了:非エンジニア向けの仕組みと設定ガイド

NPBデータをスクレイピングするときの注意点

技術的に取得できることと、取得・再利用してよいことは別です。NPBスクレイピングを実行する前に、対象サイトの利用規約、robots.txt、著作権、データベースに関する権利、個人情報、商用利用条件を確認してください。

確認項目実務で行うこと
公式の配布方法CSV、API、ダウンロード機能があれば先に利用する
利用規約自動取得、複製、再配布、商用利用の禁止・条件を確認する
robots.txtクロール対象外のパスやクローラー向け指示を確認する
アクセス負荷少量でテストし、待機時間と実行頻度を抑える
著作権・出典文章や画像を無断転載せず、必要な出典と取得日を保存する
個人情報取得目的、保存場所、閲覧権限、保持期間を定める
公開・商用利用社内分析と外部配布を区別し、必要なら権利者へ許諾を得る

特にNPB公式サイトは記録確認の重要な一次情報ですが、本記事では自動取得が一律に許可されているとは判断していません。業務で継続的に取得する場合は、公式の提供サービスや許諾の有無を確認してください。また、アクセス制限を回避する目的でプロキシやCAPTCHA処理を使用しても、利用許可が生まれるわけではありません。

スクレイピングの基本的な仕組みと注意点については「Webスクレイピングとは?」、robots.txtの確認方法については「robots.txtとは?」も参照してください。

Octoparseが向いているケース・向いていないケース

ケースおすすめの方法理由
公開CSVが必要項目を満たすCSVを直接利用取得処理を作る必要がない
公開された順位表をExcelへ移したいOctoparseAI自動検出で表の列を選びやすい
複数年度の同型ページをまとめたいOctoparseURL一括入力と繰り返し処理を使える
複雑な統計処理や予測を行うPython前処理、計算、モデルを細かく制御できる
公式APIが要件を満たす公式API仕様と利用条件が明確で安定しやすい
ログイン情報や取得禁止データを扱う取得しない・許諾を確認ツールで技術的制限を回避すべきではない

Octoparseは、Web上の繰り返し構造を担当者が画面で確認し、必要な列だけをCSVやExcelへ渡したい場合に向いています。公式APIによるリアルタイム処理や高度な統計モデルを置き換えるものではありません。取得はOctoparse、検証はExcel、再現可能な分析はPythonというように、役割を分けると運用しやすくなります。

まずはOctoparseを無料でダウンロードし、利用条件を確認できる公開ページ1件、5~10列、数十行程度でテストしてください。AI自動検出の結果とCSV出力を確認してから、複数年度や定期収集へ広げるのが安全です。

プロ野球データCSVに関するよくある質問

質問1:プロ野球データを無料でCSVにできますか?

はい。利用条件を満たす公開CSVをダウンロードするか、公開ページ上の表をOctoparseの無料プランで小規模に取得し、CSVへ出力する方法があります。ただし、データが無料で閲覧できることと、自由に再配布・商用利用できることは同じではありません。

質問2:NPB公式サイトのデータは自由にスクレイピングできますか?

一律に自由とは判断できません。NPB公式サイトは公式記録の確認元として有用ですが、自動取得、保存、再利用、商用利用について最新の規約と権利関係を確認し、必要な場合は許諾を得てください。

質問3:Wikipediaの表はOctoparseで取得できますか?

ページ上に表として表示されていれば、AI自動検出または手動選択で行と列を設定できます。取得後のデータを公開・再利用するときは、WikipediaのCC BY-SAライセンスに従い、必要な帰属表示を行ってください。

質問4:プロ野球データはExcelとPythonのどちらで分析すべきですか?

少量データの確認、ピボット集計、社内共有はExcelが便利です。複数年度の反復処理、大量データ、複雑な指標計算、再現可能な分析はPythonが向いています。Excelでデータ品質を確認してからPythonへ移す方法もあります。

質問5:Octoparseでプロ野球データを毎日自動更新できますか?

対象サイトの利用条件と契約プランが許す場合は、クラウド収集とスケジュール実行を利用できます。更新頻度はサイト側への負荷を考慮し、必要最小限に設定してください。公式APIが提供されている場合は、APIを優先すべきこともあります。

質問6:AIにプロ野球の勝敗予測を依頼できますか?

CSVを使って傾向分析やモデル作成を補助させることはできますが、予測精度はデータ量、変数、欠損、期間、検証方法に左右されます。AIの回答だけを根拠にせず、元データ、計算式、学習期間、テスト結果を確認してください。

まとめ

プロ野球データをCSVで取得する場合は、まず公開CSV、JSON、公式APIの有無を確認します。必要なデータがWebページの表にしかない場合は、利用条件を確認したうえでOctoparseのAI自動検出を使い、プロ野球のデータをCSVやExcelへ整理できます。

  1. 分析目的と必要な列を決める
  2. データ源の規約、ライセンス、更新日を確認する
  3. 少数ページをOctoparseでテストする
  4. CSV・Excelへ出力し、欠損と重複を確認する
  5. ExcelまたはPythonで集計し、出典と計算式を残す

プロ野球データをスクレイピングするときは、「取得できるか」だけでなく「取得してよいか」「どの条件で再利用できるか」まで確認することが重要です。まずはWikipediaまたは利用条件が明示されたGitHubの公開データを小規模に試し、CSVの列設計と分析手順を固めてから対象を広げましょう。

クリックだけでウェブ データを取得
無料ダウンロード

今すぐOctoparseを始めて、業務効率化を実現しましょう。

ダウンロード

関連記事