・ソースコードからレース名と時刻を探し表示してみた
・オッズ取得のテストら突然、ライブ中にレース結果をテストで取得してみた
・ソースコード内のcname変数をExcelの名前から取得してみた
コードを先に先頭に移動(結果を先に)
テストで使用した、レース名とオッズ時刻を取得するコード:
let strURL = "https://www.jra.go.jp/JRADB/accessO.html", strPARA = Text.ToBinary("cname=pw151ouS309202402041220240331Z/EB"), strHEAD = [#"Content-Type"="application/x-www-form-urlencoded"], ソース = Web.Contents(strURL, [Headers = strHEAD, Content = strPARA]), 文字列 = Text.FromBinary(ソース, 932), HTMLソース = Lines.FromText(文字列), //ダミーの挿入 // BetweenDelimitersで間を取得、便利かも? // いつもの耳(ダブルコーテーション)が二つに注意 レース名 = Text.BetweenDelimiters(文字列, "<span class=""race_name"">", "<"), 時刻 = Text.BetweenDelimiters(文字列, "<div class=""cell time""><strong>", "</strong></div>"), 結果 = {レース名} & {時刻} & HTMLソース in 結果
10:45 classの確認と取り出し Text.BetweenDelimiters
10:45 → https://www.youtube.com/watch?v=NGzEQMi-Uts&t=645s
class="race_name を探し、取り出します。
<span class="main"> <span class="race_name">陽春ステークス</span> </span> <div class="cell time"><strong>15時51分現在オッズ</strong></div>
上記HTMLから
// BetweenDelimitersで間を取得、便利かも? // いつもの耳(ダブルコーテーション)が二つに注意 レース名 = Text.BetweenDelimiters(文字列, "<span class=""race_name"">", "<"), 時刻 = Text.BetweenDelimiters(文字列, "<div class=""cell time""><strong>", "</strong></div>"),
で、取り出しました。
後半の名前範囲を使用したコード
次は、名前範囲を使用したソースコード
Excel.CurrentWorkbook(){[Name="URLCNAME"]}[Content]{0}[Column1],
Excel.CurrentWorkbook(){[Name="URLCNAME"]}[Content]{1}[Column1],
解説は下記の動画を見てください
https://www.youtube.com/watch?v=NGzEQMi-Uts&t=2518s
let strURL = "https://www.jra.go.jp/JRADB/" & Excel.CurrentWorkbook(){[Name="URLCNAME"]}[Content]{0}[Column1], strCNAME = "cname=" & Excel.CurrentWorkbook(){[Name="URLCNAME"]}[Content]{1}[Column1], strPARA = Text.ToBinary(strCNAME), strHEAD = [#"Content-Type"="application/x-www-form-urlencoded"], ソース = Web.Contents(strURL, [Headers = strHEAD, Content = strPARA]), 文字列 = Text.FromBinary(ソース, 932), HTMLソース = Lines.FromText(文字列), //ダミーの挿入 // BetweenDelimitersで間を取得、便利かも? // いつもの耳(ダブルコーテーション)が二つに注意 レース名 = Text.BetweenDelimiters(文字列, "<span class=""race_name"">", "<"), // 時刻 = Text.BetweenDelimiters(文字列, "<div class=""cell time""><strong>", "</strong></div>"), 結果 = {レース名} & {"Ken3 残念テスト"} & HTMLソース in 結果
テーブル0番目を書き出す
let strURL = "https://www.jra.go.jp/JRADB/" & Excel.CurrentWorkbook(){[Name="URLCNAME"]}[Content]{0}[Column1], strCNAME = "cname=" & Excel.CurrentWorkbook(){[Name="URLCNAME"]}[Content]{1}[Column1], strPARA = Text.ToBinary(strCNAME), strHEAD = [#"Content-Type"="application/x-www-form-urlencoded"], ソース = Web.Contents(strURL, [Headers = strHEAD, Content = strPARA]), 文字列 = Text.FromBinary(ソース, 932), HTMLtest = Web.Page(文字列), TB0 = HTMLtest{0}[Data] in TB0
解説は下記、
https://www.youtube.com/watch?v=NGzEQMi-Uts&t=2518s
突然テスト不足のソースを見つけ、パラメーターのシート参照にチャレンジ
リハーサル・準備不足なのに、シート参照のテストやりかけソースをみつけ、
ライブ中に急に解説を始める・・・
www.youtube.com
https://www.youtube.com/watch?v=NGzEQMi-Uts
目次
00:00 あいさつ 作成が遅れて、ライブがメインレース中ですみませんでした
01:17 1.パワークエリでJRAオッズのレース名と時刻を取得してみた
04:18 次は前日の復習でオッズを取得してみた
06:00 人気順にするには、現在コードを手作業で探してます おいおい
07:50 HTMLソースとオッズを同じシートに出す
10:45 classの確認と取り出し Text.BetweenDelimiters
17:12 中山12Rに変更して 再テストを行う
19:55 更新しながら、データが正しいか?チェックする あれ?タイミング?
23:14 変更操作で手間がかかることを再度説明する
25:32 蛇足でレース結果を取得してみた
28:07 JRAレース結果のページ PostとGetでテストしてみた
33:28 復習を兼ねて レース結果のページからレース名を探す
注意、動画内でゼロと言ってますが、正しくはO大文字のアルファベットのOです。
37:00 ベースURL オッズは accessO (←0ゼロではなくOです)言われてみれば、オッズのオウ、ですよね・・・
ベースURL
オッズは accessO (←ゼロ違うオウOです、ライブ中、素人らしく間違えました)
38:45 レース結果の受け取り、URLそのまま使うGETでテストしてみる
41:58 突然テスト不足のソースを見つけ、パラメーターのシート参照にチャレンジ
42:30 まずA1に名前を付ける 名前ボックスを使い "PARA" と名前を付ける
45:05 データのプライバシーに関する情報が必要です と 確認・警告メッセージ
47:30 A1セルに人気順のcnameを入れてセル参照のテスト
52:18 名前範囲で二つの値を管理したい時の説明
01:02:57 Column1って?Excel.CurrentWorkbook(){[Name="TEST"]}[Content]{0}[Column1]
01:07:55 404エラーの原因は、access0ゼロと言ってたけど、正しくはOオウです
最後のテストのエラーは、時間切れではなく、
access0ゼロと言ってたけど、正しくはOオウです
手入力で 01:07:55 「ゼロ」と口走りながら入れてますが、正しくはOオウです
※これも、初心者以上のミスでした・・・
気が付くと、かなり、はずかしい・・・
#Excel #パワークエリ #PowerQuery #エクセル #msexcel
#webクエリ #JRA #大阪杯 #デバッグ
01:17 1.パワークエリでJRAオッズのレース名と時刻を取得してみた
04:18 次は前日の復習でオッズを取得してみた
昨日のPOST送信の続きです、パワークエリでJRAテーブルの取得は
https://www.youtube.com/watch?v=9ehjI5uhyWE
↑テーブルの取得は、↑をまず、みてください。
06:00 人気順にするには、現在コードを手作業で探してます おいおい
07:50 HTMLソースとオッズを同じシートに出す
複製を使い、テスト結果の名前を変えて、
閉じて次に読み込む
既存シートへ書き出すように修正する
10:45 classの確認と取り出し Text.BetweenDelimiters
class="race_name を探し、取り出します。
<span class="main"> <span class="race_name">陽春ステークス</span> </span> <div class="cell time"><strong>15時51分現在オッズ</strong></div>
上記HTMLから
// BetweenDelimitersで間を取得、便利かも?
// いつもの耳(ダブルコーテーション)が二つに注意
レース名 = Text.BetweenDelimiters(文字列, "", "<"),
時刻 = Text.BetweenDelimiters(文字列, "", ""),
で、取り出しました。
17:12 中山12Rに変更して 再テストを行う
19:55 更新しながら、データが正しいか?チェックする あれ?タイミング?
23:14 変更操作で手間がかかることを再度説明する
変更ヶ所が現在でも二ヶ所なので、変更が大変。
これを、sheet!A1など、セルを参照させたい、
そんな操作を口にする。
※口にしただけで、できたら、誰も苦労しないか・・・
25:32 蛇足でレース結果を取得してみた
いつもの、突然の思い付きで、
ライブ中に、オッズ取得をレース結果に変えてみた。
28:07 JRAレース結果のページ PostとGetでテストしてみた
33:28 復習を兼ねて レース結果のページからレース名を探す
さすが、丁寧なJRAのページ、
同じクラス名 class="race_name" で作られてました。
注意、動画内でゼロと言ってますが、正しくはO大文字のアルファベットのOです。
37:00 ベースURL オッズは accessO (←0ゼロではなくOです)言われてみれば、オッズのオウ、ですよね・・・
ベースURL
オッズは accessO (←ゼロ違うオウOです、ライブ中、素人らしく間違えました)
レース結果は accessS (←エス大文字で助かる,sssとかになると、ミスりやすい?)
ここで、気が付けよ。
言われてみれば、オッズのオウ、ですよね・・・
38:45 レース結果の受け取り、URLそのまま使うGETでテストしてみる
41:58 突然テスト不足のソースを見つけ、パラメーターのシート参照にチャレンジ
リハーサル・準備不足なのに、シート参照のテストやりかけソースをみつけ、
ライブ中に急に解説を始める・・・
42:30 まずA1に名前を付ける 名前ボックスを使い "PARA" と名前を付ける
strCNAME = "cname=" & Excel.CurrentWorkbook(){[Name="PARA"]}[Content]{0}[Column1]
でシートの値を参照、変数に代入できる。
45:05 データのプライバシーに関する情報が必要です と 確認・警告メッセージ
プライバシーレベルをパブリックにして、
この処理は大丈夫ですよ?と確認しました。
47:30 A1セルに人気順のcnameを入れてセル参照のテスト
52:18 名前範囲で二つの値を管理したい時の説明
Excel.CurrentWorkbook(){[Name="URLCNAME"]}[Content]{0}[Column1]
Excel.CurrentWorkbook(){[Name="URLCNAME"]}[Content]{1}[Column1]
[Content]{0}と[Content]{1}をテスト
59:44 URLを結果 accessSに変えて、テストする
01:02:57 Column1って?Excel.CurrentWorkbook(){[Name="TEST"]}[Content]{0}[Column1]
複数範囲に名前を付けて、
Column1とColumn2をチェックして、違いを説明する
Excel.CurrentWorkbook(){[Name="TEST"]}[Content]{0}[Column2]
Excel.CurrentWorkbook(){[Name="TEST"]}[Content]{1}[Column2]
01:07:55 404エラーの原因は、access0ゼロと言ってたけど、正しくはOオウです
最後のテストのエラーは、時間切れではなく、
access0ゼロと言ってたけど、正しくはOオウです
手入力で 01:07:55 「ゼロ」と口走りながら入れてますが、正しくはOオウです
※これも、初心者以上のミスでした・・・
気が付くと、かなり、はずかしい・・・
ではまたぁ。。。。
再生リストの紹介: #JRA #オッズ を #自動取得
https://www.youtube.com/playlist?list=PLBFC80A8658C305CE
↑関連動画の再生リストです