Excel Power QueryでWebサイトからデータを取得!POST送信をマスターしよう!
Excel Power QueryでWebスクレイピングを行う際に必要な「POST送信」について、JRAの大阪杯オッズ取得を例に解説します。
GETメソッドとの違いを理解し、Content-Typeやパラメータ設定など、実践的なPOST送信の方法を学びましょう。
デバッグの失敗談も交えながら、より深く理解することができます。
Power QueryでWebデータ分析に挑戦したい方、必見です!
目次・チャプター:
00:00:00 Power QueryでPOST送信 JRAオッズ取得で解説
00:00:37 WebフォームとPOST送信 POST/GET送信の違いを解説
00:00:50 HTMLソースで確認 POST/GETの判別方法
00:02:05 GETメソッド URLでパラメータ送信
00:04:06 Google検索 GETメソッドの例
00:06:12 YouTube検索 GETメソッドの例
00:07:48 GETメソッド パラメータの例
00:09:48 POSTメソッド リクエストボディで送信
00:13:34 GETとPOSTの使い分け 適切なメソッドを選択
00:13:49 POST送信をテスト M言語コード解説
00:15:18 簡単なPOST送信 コード解説
00:17:29 パラメータ設定 Text.ToBinary関数
00:20:01 ヘッダー設定 Content-Type
00:22:21 文字コード変換 Shift-JISとWeb.Page関数
00:25:42 GETメソッドのコード URLパラメータでシンプルに
00:28:20 JRAオッズ取得 大阪杯を例に
00:29:35 Content-Type JRAページのおまじない
00:34:17 人気順パラメータ cnameの値を探る
00:36:49 パラメータ修正 デバッグの失敗と成功
00:40:42 新規ブックでデバッグ 環境依存のバグ?
00:44:39 パラメータの誤り 正しい値に修正
00:50:22 まとめ Power Queryの可能性
00:50:53 今後の課題 パラメータの動的取得
#Excel #PowerQuery #POST送信 #Webスクレイピング #JRA #オッズ #M言語 #GETメソッド #HTML #デバッグ
関連情報:
Power Queryの公式ドキュメント:https://docs.microsoft.com/ja-jp/power-query/
Webスクレイピングに関する記事:https://www.google.com/search?q=Webスクレイピング
再生リストの紹介: JRA オッズ を 自動取得
↑関連動画の再生リストです
—
過去のライブ動画: リメイク前の元動画は下記です、字幕が重なって見にくい時は字幕なしの元動画を見てください(途中のカット前のソースコードなとも過去動画に置きっぱなしになっていたりします)
URL: https://youtube.com/live/9ehjI5uhyWE
↑の過去動画を確認して下さい。元動画を #生成ai で #リメイク してみた動画です。上記修正前の過去動画もよろしくお願いします。
1. #ai に動画を読み込ませ文字起こしを行い、
2.「あの」「あの」「すみません」など、話し言葉を削除した、字幕を作り
3.整形した字幕を埋め込みました。
※内容は、上記過去動画と同じです。字幕をAIできれいにしてみました。
比較してみてください。
※コメント欄にHTMLソースとM言語のコードが貼ってあるので、合わせてみてください。
—
解説動画作成後のAIまとめ
1. 動画の概要
テーマ: Excel Power Queryを用いたWebスクレイピング、特にPOST送信の方法
対象者:
Excel Power Queryを使ってWebサイトからデータを取得したい初心者~中級者
Webスクレイピングに興味があり、POST送信について学びたい方
JRAのオッズデータなどを自動で取得したい方
目的:
Power QueryでのPOST送信の基礎知識と実践的な活用方法を理解する
GETメソッドとの違いを理解し、適切なメソッドを選択できるようになる
実際にJRAのオッズデータを取得する例を通して、Webスクレイピングのスキルを向上させる
2. 動画の内容
この動画では、Excel Power Queryを使ってWebサイトからデータを取得する方法、特にPOST送信について解説しました。
GETメソッドとの違い、Content-Typeの設定、パラメータの指定方法、デバッグのポイントなどを、JRAの大阪杯オッズ取得を例に説明しました。
3. 未解決の問題点・積み残しの課題
パラメータの動的な取得: 今回の動画では、JRAのオッズ取得に必要なパラメータ(cname)をコードに直接記述していました。より実用的なツールとするためには、このパラメータをWebページから動的に取得する必要があります。
対処法: 次回の動画で、WebページのHTMLを解析し、必要なパラメータを抽出する方法を解説する。
エラー処理: Webスクレイピングでは、Webサイトの構造変更などにより、予期せぬエラーが発生する可能性があります。
対処法: エラー発生時の処理を組み込むことで、ツールの安定性を向上させる。具体的なエラー処理方法については、別の動画で解説する。
4. 視聴者からの反応(想定されるものを含む)
ターゲット視聴者: Power Query初心者、Webスクレイピングに興味のある方、JRAのオッズ分析に興味のある方
想定される反応:
「POST送信について分かりやすく解説されていて、理解が深まりました。」
「JRAのオッズ取得の例が面白かったです。実際に試してみたいと思います。」
「パラメータの動的な取得方法についても解説してほしいです。」
「エラー処理についても詳しく知りたいです。」
「他のWebサイトのデータ取得例も見てみたいです。」
5. AI編集者の反応
動画構成: 全体的に説明が冗長な部分があり、テンポが悪い。特にGETメソッドの説明が長すぎるため、視聴者の集中力が途切れてしまう可能性がある。
説明の分かりやすさ: 専門用語が多い箇所があり、初心者には理解しづらい部分がある。図解やアニメーションなどを効果的に活用することで、より分かりやすく説明できる。
実用性: JRAのオッズ取得という具体的な例を通して解説している点は良いが、他のWebサイトへの応用方法についても触れると、より実用的な内容になる。
デバッグ: デバッグの過程をそのまま見せているのは、視聴者にとって参考になる部分もあるが、冗長に感じられる可能性もある。デバッグのポイントを絞って解説する、または別動画として切り出すことを検討する。
サムネイル: サムネイルの文字が見づらい。文字を大きくする、色を変えるなど、視認性を向上させる工夫が必要。
6. 制作過程の振り返り
構成: GETメソッドとPOSTメソッドの説明を明確に分ける。導入部分を短くし、視聴者の興味を引くような内容にする。
説明: 専門用語を分かりやすく説明する。図解やアニメーションを積極的に活用する。
実用性: 他のWebサイトへの応用方法についても触れる。視聴者が実際に試せるような課題を用意する。
デバッグ: デバッグのポイントを絞って解説する。デバッグに特化した別動画を作成する。
サムネイル: サムネイルの視認性を向上させる。動画の内容を的確に表す画像と文字を選ぶ。
編集: テンポの良い動画にするために、不要な部分をカットする、効果音やBGMを効果的に使用する。
その他
視聴者からのコメントを参考に、次回作の改善に活かす。
最新のPower Queryの機能やWebスクレイピングの技術を常に学習し、動画の内容に反映させる。
これらの改善点を意識することで、より質の高い解説動画を作成し、視聴者のニーズに応えていきたいと考えています。
Excelのパワークエリに貼り付けてテストしてみてください
let
strURL = "https://www.jra.go.jp/JRADB/accessO.html",
strPARA = Text.ToBinary("cname=pw151ouS308202405061120241020Z/F5"),
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
途中改造したコード・・・好きに改変してください
let
strURL = "https://www.jra.go.jp/JRADB/accessO.html",
strPARA = Text.ToBinary("cname=pw151ouS308202405061120241020Z/F5"),
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],
変更された型 = Table.TransformColumnTypes(TB0,{{"単勝", type number}}),
削除された列 = Table.RemoveColumns(変更された型,{"枠", "複勝(3着払い)", "性齢", "馬体重", "負担重量"}),
並べ替えられた行 = Table.Sort(削除された列,{{"単勝", Order.Ascending}})
in
並べ替えられた行
—
第85回菊花賞GⅠ パワークエリテスト用の固定ソース 2024年10月20日(日曜)
https://www.youtube.com/watch?v=fx5TyrLYYbI
↑実行結果
目次・チャプター
00:00:00 Power QueryでPOST送信 JRAオッズ取得で解説
00:00:37 WebフォームとPOST送信 POST/GET送信の違いを解説
00:00:50 HTMLソースで確認 POST/GETの判別方法
00:02:05 GETメソッド URLでパラメータ送信
00:04:06 Google検索 GETメソッドの例
00:06:12 YouTube検索 GETメソッドの例
00:07:48 GETメソッド パラメータの例
00:09:48 POSTメソッド リクエストボディで送信
00:13:34 GETとPOSTの使い分け 適切なメソッドを選択
00:13:49 POST送信をテスト M言語コード解説
00:15:18 簡単なPOST送信 コード解説
00:17:29 パラメータ設定 Text.ToBinary関数
00:20:01 ヘッダー設定 Content-Type
00:22:21 文字コード変換 Shift-JISとWeb.Page関数
00:25:42 GETメソッドのコード URLパラメータでシンプルに
00:28:20 JRAオッズ取得 大阪杯を例に
00:29:35 Content-Type JRAページのおまじない
00:34:17 人気順パラメータ cnameの値を探る
00:36:49 パラメータ修正 デバッグの失敗と成功
00:40:42 新規ブックでデバッグ 環境依存のバグ?
00:44:39 パラメータの誤り 正しい値に修正
00:50:22 まとめ Power Queryの可能性
00:50:53 今後の課題 パラメータの動的取得
関連情報
Power Queryの公式ドキュメント:https://docs.microsoft.com/ja-jp/power-query/
Webスクレイピングに関する記事:https://www.google.com/search?q=Webスクレイピング
長い
歯磨きは3分