💨

1. 万博自動化検証 ― はじめに(Python、JavaScript)

に公開

1. 万博自動化検証 ― はじめに(Python、JavaScript)

背景

これまで私は Python を使った Web スクレイピングに取り組んできました。
requestsBeautifulSoup といったライブラリを使い、HTML を解析して必要な情報を取得するという典型的なワークフローです。

スクレイピングはサーバーから返ってきた 静的な HTML を処理するにはとても便利です。しかし、近年の多くのサイトは フロントエンドでの動的レンダリングが一般的になっており、ページ内のボタンや動作をリアルタイムに操作する必要があるケースが増えています。

今回のケースとの合致性

今回扱ったサイト(Expo 2025関連ページ)では、

  • ボタンの有効/無効状態が DOM 属性で頻繁に変化する
  • ログイン後のページ遷移やユーザー操作が前提
  • 「画面を監視して、条件を満たしたら即座にクリック」といった挙動

が必要でした。

これを Python で実現しようとすると、

  • selenium のようなブラウザ操作ツールを導入する必要がある
  • 環境構築やブラウザドライバ管理が重い
  • 単純に「自分のブラウザでちょっと動かす」には過剰

という課題が見えてきました。

JavaScript を選んだ理由

そこで選んだのが JavaScript(JS)+Chrome+Tampermonkey です。

理由はシンプルで:

  1. ブラウザ上で直接動作するため「今見ているページ」に即座に適用できる。
  2. DOM 操作に強いため、ボタンやテキストの状態をリアルタイムに監視できる。
  3. 導入が簡単で、Tampermonkeyにスクリプトを登録するだけで動作する。
  4. console.log によるデバッグが即時でわかりやすい。

Python スクレイピングと比べると、JS での自動化は「フロントエンド操作をそのままプログラムにする」感覚に近く、今回のケースには非常に合致していました。

学びの視点

この取り組みを通じて、

  • Python の「裏側からデータを抜き出す」アプローチと、
  • JavaScript の「表側で実際にユーザー操作を再現する」アプローチ

の違いを体感できました。
どちらも Web 自動化の技術ですが、対象とするレイヤーが異なるのだと実感しました。


免責事項

本記事は Web 自動化の学習記録をまとめたものであり、Expo 2025 チケット予約システムの不正利用を助長する意図は一切ありません。
実際にスクリプトを利用する場合は、万博公式の規定や利用規約に従うことが必須です。
本記事を参考にしたことによって生じたいかなる不利益・損害についても、筆者は責任を負いません。


Discussion