【無音動画解説】JRA3連単(人気順)をPower Queryで取得する方法・完全解析ログ
Dec 8, 2025•Channel
AI Analysis
Data from YouTube Data API v3•Updated Just now
Video Overview
Video Details
Published5 months ago
Duration44:11
Video IDlf3s5LvRofU
Languageja
CategoryHowto & Style
PrivacyPublic
Made for KidsNo
Video TypeRegular Video
Performance Metrics
Views17
Likes0
Comments1
Engagement Rate5.88%
Likes per 100 views0.00
Comments per 1K views58.82
Description
※配信トラブルにより音声が入っておりません。申し訳ありません。
画面上の操作(HTMLソース解析からPower QueryのM言語修正まで)は
確認できますので、上記タイムスタンプを目安にご覧ください。
特に18:00付近のパラメータ連結部分が解決のポイントです。
動画の概要: 通常のURLアクセスでは取得できない「3連単の人気順オッズ」を、JRAサイトの裏側(HTMLソースとJavaScript)を解析し、Power QueryのPOST送信パラメータ(Text.ToBinary)を修正して取得するまでの試行錯誤プロセスです。
「タイムライン目次」を参考に、 「JRAのWebページ裏側にあるJavaScriptを読み解き、正しいPOSTパラメータを見つけ出す手順」 としてご覧いただければ、デバッグの実例として非常に役立つ内容になっています。
特に 18:00 あたりの、複数のパラメータを & で繋いで Text.ToBinary に渡す箇所が解決の決定打です!
タイムライン目次
00:00 視聴者様からの質問:3連単人気順のパラメータ設定について
01:10 現状の整理と調査対象レース(11R)の確認
03:00 JRA公式Webサイトでの動作確認(URLが変わらないPOST動作)
04:15 ブラウザの「ページのソースを表示」でHTML構造を調査
06:30 JavaScriptの関数「setParameter」とinputタグを発見
08:00 Power Queryエディタ起動とテスト用クエリの準備
11:00 HTML解析:人気順位(iv_ninki)のセレクトボックス値を確認
14:00 JS解析:calldoAction関数と隠しパラメータ(xW15等)の解読
15:30 重要:calldoActionの引数と変数の関係を特定する
18:00 解決策:POST送信用のパラメータ文字列を構築(&で繋ぐ)
24:00 実践:Power Query詳細エディタでText.ToBinary部分を修正
32:00 データ取得テストと結果の検証(意図した順位が取れているか)
36:00 応用テスト:パラメータ(xRange)を変えて別の順位を取得
40:00 まとめと今後の課題(パラメータの変数化など)
【無音動画解説】JRA3連単(人気順)をPower Queryで取得する方法・完全解析ログ
動画の概要: 通常のURLアクセスでは取得できない「3連単の人気順オッズ」を、JRAサイトの裏側(HTMLソースとJavaScript)を解析し、Power QueryのPOST送信パラメータ(Text.ToBinary)を修正して取得するまでの試行錯誤プロセスです。
【調査メモ・台本テキスト】
動画内で使用した調査メモと、試行錯誤の過程です。 無音のため、こちらのテキストと合わせて動画の操作をご覧ください。
■ 視聴者様からの質問 JRAの3連単人気順のデータを取得したいが、パラメータが複雑でうまくいかない。 strPARA = Text.ToBinary("cname=pw15...") の部分をどのように記述すればよいか? xMode, xRange, xSort などのパラメータ指定で行き詰まっている。
■ 調査と解決のプロセス
1. 開催地とレースIDの確認 まずは通常通りデータを取得し、ターゲットとなるレース(例:11レース)のIDを確認。 pw158ouS307... といったIDがベースになる。
2. Webブラウザでの動作確認 JRAホームページで「3連単」→「人気順」を選択してもURLが変わらない。 → onclick イベントでJavaScriptが走っていることを確認。 doAction('/JRADB/accessO.html', 'pw15...') が呼ばれている。
3. HTMLソースの解析 「人気順」のセレクトボックス(1~500位、501~1000位...)の値を調べる。
01/3F : 1~500位
02/60 : 501~1000位
03/81 : 1001~1500位
05/C3 : 2001~2500位
4. JavaScript(setParameter と calldoAction)の解析 「表示」ボタンを押した時の挙動を追うと、以下の隠しパラメータ(hidden)をPOST送信していることが判明 。
cname: レースID(pw15...)
xMode: 1/0E (人気順モード)
xRange: 03/81 など (表示範囲)
xSort: 1/0E (昇順)
5. Power Query(M言語)での解決策
Text.ToBinary に渡す文字列は、単一のIDではなく、上記のパラメータを &(アンパサンド)で繋いだ形式にする必要がある 。
6. 今後の課題
今回はパラメータを固定値でテストしたが、実用化にはこれを変数化(動的に変更)する必要がある。
オッズの範囲指定など、他のモードも同様の手順で対応可能と思われる。
※この動画は配信トラブルにより音声がありません。上記のメモと画面操作を参考に、デバッグの過程をご確認ください。
動画時間 大分類(工程) 詳細な操作・状況解説(台本との照合)
[00:00] 導入・質問紹介 テキストエディタを表示。「3連単の人気順を取得しようとすると、パラメータが複雑でうまくいかない」という視聴者からの質問と、現在の行き詰まっている状況(strPARAの記述方法)を提示。
[01:10] 現状の整理 Excel画面へ。既に取得できている「開催地」や「レース一覧」のデータを確認。ここから「11レース」のデータを例に調査を開始する。
[03:00] Web動作確認 ブラウザでJRAの「3連単オッズ(馬番順)」を表示。「人気順」タブをクリックし、画面がどう切り替わるか、URLが変わらない(POST送信である)ことを視覚的に確認。
[04:15] HTML解析開始 ブラウザの「ページのソースを表示」を実行。HTMLソースコードが表示される。検索機能(Ctrl+F)を使い、レースID(pw15...)周辺を探る。
[06:30] JS関数の発見 HTML内で「人気順」ボタンの挙動を制御している input type="radio" name="iv_mode"... や onclick="setParameter()" を発見。JavaScriptの関数 setParameter が鍵であると特定。
[08:00] Power Query起動 一旦Excelに戻り、Power Queryエディタを起動。「空のクエリ」を作成し、JRAへの接続テストの準備を始める(画面はエディタとメモを行き来)。
[11:00] パラメータ特定(1) テキストエディタに戻り、ソース解析のメモ書きを開始。selectタグの中身(name="iv_ninki")を確認。オッズ範囲(1~100位、101~200位など)が value="03/81" のような値で管理されていることを特定。
[14:00] パラメータ特定(2) JavaScriptの calldoAction 関数を解析。隠しフィールド(hidden)に xW15 (レースID), iv_mode, iv_ninki などの値がセットされているロジックを読み解く。
[15:30] JSロジック解読 calldoAction 関数の引数を確認中。str1がレースID、str2がモード、str3が範囲などを意味していることを突き止める。ここが動画のハイライト(解決の糸口)。
[18:00] POSTデータ構築 【重要】 テキストエディタにて、Power Queryに記述すべき文字列を作成開始。単一のIDだけでなく、アンパサンド(&)でパラメータを繋ぐ必要があると判明。cname=...&xMode=1/0E&xRange=03/81&xSort=1/0E という形式を組み立てる。
[24:00] クエリ作成(M言語) ExcelのPower Query詳細エディタ画面。let ... in 構文の中に、先ほど特定したパラメータを Text.ToBinary に渡すコードを記述。strPARA = Text.ToBinary(strCNAME & "&" & strxMode & ...) と修正。
[28:00] 接続テスト実行 作成したクエリを実行。テーブルが展開され、エラーが出ずにデータが取得できるか固唾を呑んで見守るシーン。
[32:00] データ検証 取得したHTMLテーブルを展開。「人気」「組番」「オッズ」の列が表示され、意図した「人気順(1001位~1500位など)」のデータが取れているかを確認。
[36:00] 応用テスト パラメータの xRange を 05/C3 (2001位~2500位) に書き換えて再取得テスト。別の範囲も正しく取得できることを実証。
[40:00] まとめ・課題 テキストエディタに戻り、今回の調査結果を総括。今回は固定値でテストしたが、今後はこれを動的に変数化する必要があること、オッズ範囲での絞り込みも同様の手法でいけることなどをメモ書きして終了。
-- JRA3連単をパワークエリで取得する 久々のライブ、無音で失敗してた・・涙・・・LIVE配信 25/12/07 3連単を取得する方法
久々のライブ、無音で失敗してた・・涙・・・LIVE配信 25/12/07 3連単を取得する方法
質問:
3連単人気順だと
'pw158ouS308202504070120251129Z/A8'
のところが
'pw158opS308202504070120251129Z/CA', '2/3D', '00/1E', '1/0E'
のようになってしまい、
クエリにどう記述したものかわからず、質問させていただきました。
strPARA = Text.ToBinary("cname=pw158ouS308202504070120251129Z/A8"),
のところ
strPARA = Text.ToBinary("cname=pw158ouS308202504070120251129Z/A8","
xMode=2/3D","xRange=00/1E","xSort=1/0E"),
とか、いくつか試しましたがうまくいきません。
行き詰ってます。
オッサンの調査:
calldoAction("pw158opS307202505021120251207Z/11", "1/0E", "03/81", "1/0E", '');
calldoAction(str1, str2, str3, str4, str5) {
var strW15 = str1;
var strMode = str2;
var strKai = str3;
var strSort = str4;
なので、
cname="pw158opS307202505021120251207Z/11"
xMode="1/0E"
xRange="03/81"
xSort="1/0E"
を送る
テストで、いつものように、固定でテスト
送るパラメーターのポイントは、
strPARA = Text.ToBinary(strCNAME & "&" & strxMode& "&" & strxRange & "&" & strxSort)
↑
アンパサンド、が多くて目が痛くなるけど
作りたい文字列は
"cname=pw158opS307202505021120251207Z/11&xMode=1/0E&xRange=03/81&xSort=1/0E"
解決のヒントとなれば幸いです。