ほしい限定本やカードゲームの完全版が、気づいたらいつも売り切れ。入荷してもあっという間になくなりますよね。
それなら「入荷した瞬間に教えてくれるbot」を作ればいいじゃないか、ということで、AIと一緒に在庫通知botを自作してみました。しかもクラウドの無料枠を使って、24時間ずっと動かしています。
この記事では、そのbotがどんな仕組みで動いているのかを、初心者の方にもわかるようにまとめていきます。
作ったものはこんなbot
やっていることはシンプルで、こんな見張り番です。
- 監視したい本と書店をリストに登録しておく
- 30分ごとに各書店の在庫ページを自動でチェック
- 「在庫なし」から「在庫あり」に変わったら、Discordに通知が飛ぶ
人気商品は入荷から売り切れまでが本当に早いので、その「入荷の瞬間」を逃さないのが狙いです。スマホにDiscordの通知が来たら、すぐ買いに動けます。
全体の仕組み(ざっくり)
中身は、役割ごとに小さな部品に分かれています。

- 監視リスト … どの本を、どの書店で見るかを書いたファイル
- 司令塔 … リストを上から順にチェックしていく親プログラム
- 書店ごとの読み取り係 … 書店ごとにページの作りが違うので、それぞれ専用の読み方を用意
- 記憶係 … 前回の在庫状態を覚えておき、今回と比べる
- 通知係 … 変化があったときだけDiscordにメッセージを送る
ポイントは「書店ごとの読み取り係」を分けていることです。くまざわ書店、ジュンク堂、有隣堂、TSUTAYAなど、サイトごとに在庫の表示方法はバラバラなので、共通の土台は使い回しつつ、判定部分だけ書店ごとに差し替えられるようにしています。
どうやって在庫を見ているの?
ここが一番のキモです。最近の書店サイトは、JavaScriptで在庫情報をあとから表示するところが多く、ただページのHTMLを取得するだけでは在庫がわかりません。
そこで使ったのが「Playwright」というツールです。これは本物のブラウザ(Chromium)を裏側で自動操作してくれるもので、人間がページを開いたときと同じ状態のHTMLを取得できます。
1回のチェックは、こんな流れで動きます。
- 監視リストを読み込む
- 本ごと・書店ごとに、Playwrightでページを開く
- 表示されたHTMLから「在庫あり・なし」を判定する
- 前回の状態と比べて、変化があるか確認する
- 在庫が復活していたらDiscordに通知する
- 今回の状態を保存して、次回の比較に使う
これを30分ごとに自動でくり返しています。
情報
「人が見るのと同じ状態のページを取れる」のがPlaywrightの強みです。JavaScriptで描画される今どきのサイトでも、在庫の有無をちゃんと読み取れます。
いつ通知が来るようにしたか
ただ「在庫あり」のたびに通知すると、うるさくなってしまいます。そこで通知のルールを工夫しました。
- 在庫なし → 在庫あり に変わった瞬間に通知(入荷検知!)
- 在庫ありが続いている間は、数回までリマインド通知(買い逃し防止)
- 売り切れたら静かになる
- 日付が変わったらカウントをリセットして、また入荷時に通知
「入荷したときと、その直後だけ教えてくれて、売り切れたら黙る」という、ちょうどいい塩梅を目指しています。
こだわりポイント:完全無料で24時間動かす
自作botでいちばん悩むのが「どこで動かし続けるか」です。自分のPCをずっとつけっぱなしにするのは大変ですよね。
そこで、クラウドの「ずっと無料」で使える枠(無料VPS)に置いて、30分ごとの自動実行を仕込みました。これで、自分のPCを閉じても24時間ノンストップで在庫を見張ってくれます。電気代もかかりません。
ヒント
クラウドには「期間限定の無料お試し」と「ずっと無料」の2種類があります。この違いを理解して“ずっと無料”の枠を選ぶのが、長く無料で運用するコツです。
さらに、もし無料サーバーが止まってしまったときのために、手元のPCでも同じbotを動かせるように準備しておきました。住宅のネット回線から動かすと、サイト側にブロックされにくいというメリットもあります。普段はクラウド、いざというときは手元、という二段構えです。
作ってみた感想と注意点
実際に動かしてみると、ほしかった本の入荷通知がちゃんとスマホに届くようになって、かなり快適になりました。AIと一緒だと、書店ごとの読み取り部分もサクサク組めて、思ったより短時間で形になったのが驚きでした。
一方で、気をつけたい点もあります。
- スクレイピングは各サイトの利用規約を必ず確認すること
- アクセス間隔は十分に空けて、相手のサーバーに負担をかけないこと
- あくまで個人的な「在庫チェック」の範囲で使うこと
このあたりのマナーを守るのは大前提です。
まとめ
「ほしい本の入荷を逃したくない」という小さな悩みから始めて、Playwrightで在庫を読み取り、Discordに通知し、無料枠で24時間動かす、というbotをAIと一緒に作ってみました。
仕組み自体は、在庫だけでなく「価格が下がったら通知」「再入荷を見張る」など、いろいろな自動化に応用できます。アイデア次第で、自分専用の便利botがどんどん作れるのが面白いところです。
次は、実際の作り方やコードまで踏み込んだ、より詳しい解説もまとめていく予定です。


