AIを活用してPythonの自動購入bot(Amazon・楽天・チケット対応)を構築する現在の最適解は、「ClaudeとAIエディタ(Cursor等)を組み合わせ、コード生成からエラーリカバリまでを完全に自動化すること」です。プログラミングの事前知識は一切不要であり、本記事で完全公開する「プロンプト設計」と「検証手順」をそのままなぞるだけで、誰でも実用的なbotを実装できます。
「自動購入botを自作したい。でもPythonは書けないし、Seleniumって何?」——わずか1年前なら、ここで諦めるか高額なツールを買うしかありませんでした。自力でネット上の実装記事を漁っても、「そもそも解説が難解」「サイト側の仕様(DOM構造)が変わっていて古いコードが動かない」「環境依存のエラーで詰んで終わる」という三重苦が待っているのがスクレイピングの現実です。
しかし、Claudeが圧倒的なコーディング能力を獲得した今、ゲームのルールは完全に変わりました。現在ボトルネックになるのは「コードを書く力」ではありません。必要なのは「どんな条件で、どう動かしたいか」を定義する要件定義と設計力のみです。
実務レベルの業務自動化ノウハウをベースに構築した本記事を読むと、以下の悩みがすべて解決します。
-
プロンプト設計の型がわかる: ターゲット(Amazon・楽天・チケット等)の複雑な仕様を突破するための、AIへの的確な指示の出し方
-
エラーの無限ループからの脱出: 動かないコードが出力された際、AI自身にログを解析・自己修復させるデバッグ手法
-
完全自動化のロードマップ: 自身のPC上ではなく、クラウド(VPS)で24時間365日安定稼働させるまでの全手順
もう、エラー画面を睨みながら何時間もネットを検索する必要はありません。この記事を読み終えた時点で、あなたのVPS上では、狙った商品を休むことなく監視し、入荷の瞬間に自動で決済まで完了させるbotが静かに稼働しているはずです。無駄な学習コストを削ぎ落とし、最短ルートで強力な自動化システムを手に入れましょう。
1. 自動購入botの全体像——「何を作るか」を先に決める
自動化を成功させるための第一歩は、コードを書き始めることではありません。botがどのように動き、どのようなリスクを伴うのかを「設計者」の視点で俯瞰することです。
1-1. botが購入を完了するまでの処理フロー
botの動きは、突き詰めれば以下の4ステップの反復と実行にすぎません。
-
監視(アクセス): ターゲットのURLを開き、商品ページを読み込む
-
判定(スクレイピング): 「在庫あり」や「カートに入れる」ボタンの有無を確認する
-
アクション(クリック): 在庫を検知した場合、即座にカートへ追加する
-
決済(フォーム入力): ログイン状態を維持したまま、決済フローを走破する
1-1-1. ブラウザ操作型(Selenium)の仕組み——なぜ最初の1台はこれ一択か
【結論】初心者が最初に作るべきは、人間と同じようにブラウザを動かす「Selenium(ブラウザ操作型)」一択です。
スクレイピングや自動化の手法には、大きく分けて「ブラウザ操作型(Seleniumなど)」と「HTTPリクエスト型(Requestsなど)」の2種類が存在します。競合記事では両者を並列で解説しがちですが、実務の観点から言えば、最初はSelenium以外を検討する必要はありません。
-
Selenium(ブラウザ操作型): 実際にChromeなどのブラウザを裏で立ち上げ、人間がマウスやキーボードで操作するのと同じように画面を動かします。画面の描画を待ってからクリックするため、サイト側の複雑なbot検知システム(Cloudflareなど)に弾かれにくく、直感的に動作を確認できるのが最大のメリットです。
-
HTTPリクエスト型: ブラウザを介さず、サーバーと直接データを送受信します。圧倒的に高速ですが、サイトの裏側の通信(APIの構造や暗号化されたトークン)を自力で解析する必要があり、初心者が手を出せば開始5分で挫折します。
まずは「少し遅いかわりに、確実で解析が不要なSelenium」で動くものを完成させる。これが最速のルートです。
1-1-2. AI支援で変わったこと——コードを書く力より設計力が重要になった理由
【結論】ClaudeやCursorの登場により、開発のボトルネックは「文法エラーとの戦い」から「要件定義(何をどう動かすか)」へと完全に移行しました。
AI以前のbot開発は、「書く→動かす→謎の文法エラーで止まる→Stack Overflowを何時間も彷徨う」という苦行でした。しかし現在は、自然言語で「Amazonで特定のASINを監視し、在庫が復活したらクリックするSeleniumのコードを書いて」と指示すれば、数秒で完璧なベースコードが出力されます。
ここで起きたパラダイムシフトは、プログラマーの価値の変容です。
これからのbot開発において重要なのは、「Pythonの構文を暗記していること」ではありません。「対象サイトのログインはどのタイミングで求められるか」「読み込み遅延に対して何秒の待機時間を設けるか」といったシステムの設計をAIに的確に指示(プロンプト化)し、出力された動作を検証する力です。
1-2. 利用規約と法的グレーゾーンの整理(先に読め)
【結論】botの運用は常に「利用規約違反」と「法的リスク」の境界線上にあります。「知らなかった」では済まされないため、稼働前にリスクのグラデーションを正確に把握してください。
「グレーなので注意してください」といった曖昧な警告で終わらせず、ここでは具体的なリスクの構造と、それをコントロールするための設計思想を定義します。
1-2-1. Amazon等が規約で実際に禁止している行為——条文ベースで確認
ほとんどのECサイト(Amazon、楽天など)は、利用規約において「ロボット、データマイニング、その他類似のデータ収集・抽出ツールの使用」を明確に禁止しています。
つまり、botを用いてアクセスする行為自体が、厳密には利用規約違反(アカウント停止の対象)にあたります。サイト側に過度な負荷をかける異常な連続アクセスは、最悪の場合「偽計業務妨害罪」として刑事事件化するリスクも孕んでいます。
1-2-2. 転売目的 vs 個人使用でリスク水準がどう変わるか
同じbot稼働でも、「目的」によって背負うリスクの次元が変わります。
-
個人使用(低リスク): 「どうしても欲しい限定スニーカーを自分用に1足だけ買う」というケース。規約違反には該当しますが、アクセス頻度を常識的な範囲に収めていれば、サイト側も悪質な攻撃とは見なしにくく、実質的なペナルティを受ける可能性は低いです。
-
転売目的(高リスク): 利益目的で大量に買い占める行為。特に「チケット」に関しては、チケット不正転売禁止法により明確な違法行為となります。また、メーカー側が転売対策を強化している現代において、複数アカウントを用いた組織的な買い占めは、法的措置のターゲットになりやすいレッドゾーンです。
1-2-3. bot検知を回避する最低限の設計思想(ポーリング間隔・UA設定)
リスクを最小限に抑え、かつサイト側のbot検知(WAF等)を回避するためには、「いかに人間の行動に偽装するか」という設計思想が不可欠です。AIにコードを書かせる際も、以下の要件を必ずプロンプトに組み込んでください。
-
ポーリング間隔のランダム化(必須):
time.sleep(1)のように「正確に1秒ごとにアクセスする」行為は、一瞬でbotと判定されます。「3秒から7秒の間でランダムに待機する」といった揺らぎ(人間らしさ)を実装してください。 -
User-Agent(UA)の偽装:
Seleniumのデフォルト設定でアクセスすると、ブラウザの情報(UA)に「botである」というシグナルが混ざります。普段自分が使っているChromeの最新のUA文字列を取得し、コード内にセットしてリクエストを偽装します。
-
Headlessモードの慎重な運用:
画面を表示させずに裏で実行する「Headlessモード」は検知されやすいため、導入初期は画面を表示させた状態で動作確認を行い、安定稼働後に
undetected-chromedriverなどの検知回避ライブラリを併用して移行するのが鉄則です。
2. 環境構築——Claudeに手順を出させて30分で終わらせる
【結論】環境構築でGoogle検索を使うのは今すぐやめてください。ネット上の古い記事が挫折の最大の原因です。現在の正解は「自分の環境をClaudeに伝え、専用の構築手順を出力させること」です。
自動購入bot開発において、初心者の80%がコードを書く前の「環境構築」で挫折します。バージョン違いによるエラー、通っていないパス、動かない古いコマンド。これらを自力で解決する必要はもうありません。AIに指示を出し、出力されたコマンドをコピペするだけで、30分後には開発環境が完成します。
2-1. 必要なものの全体像を把握する
個別のインストール手順はすべてClaudeに聞くため、ここでは「何がどの役割を果たすのか」という全体像(アーキテクチャ)だけを頭に入れてください。
2-1-1. Python・Selenium・ChromeDriver・VPSの関係を図解
botが動く仕組みは、工場での作業指示に似ています。以下の4つの役割を理解してください。
-
Python(司令塔): 「このURLに行け」「ボタンを押せ」というロジックを記述するプログラミング言語本体。
-
Selenium(翻訳機): Pythonの指令を、ブラウザが理解できる操作(クリックやスクロール)に翻訳するライブラリ。
-
ChromeDriver(操縦桿): 実際にGoogle Chromeを動かすためのドライバー。※現在は
webdriver-managerというツールを使うことで、面倒なバージョン合わせを全自動化するのが主流です。 -
VPS(24時間稼働の工場): ネット上に借りる自分専用のパソコン(サーバー)。botを自分のPCで動かすとPCを閉じたら止まってしまいますが、VPSに置けば24時間365日休まず監視を続けてくれます。
2-2. Claudeへの環境構築プロンプトテンプレ
【結論】OSと現在の状況を詳細に伝えたプロンプトを投げることで、AIがあなた専用の「セットアップマニュアル」を生成します。
「Python インストール方法」と検索すると、数年前の古い情報がヒットして環境が壊れる原因になります。以下のプロンプトをそのままClaudeにコピー&ペーストしてください。
2-2-1 & 2-2-2. Mac / Windows / VPS(Ubuntu)別の指示文テンプレ
あなたの環境に合わせて、以下の3つのうち1つを選んでClaudeに送信してください。
▼ テンプレ①:Windows用(1台目のPC)
私はプログラミング初心者です。Windows11のPCで、Pythonを使ったスクレイピング(Selenium)環境を構築したいです。
以下の条件を満たす、具体的なインストール手順とコマンドを順番に教えてください。
・Pythonの最新安定版をインストールしたい(パスの通し方も含めて解説してください)
・エディタはCursor(またはVSCode)を使用します
・Seleniumと、ドライバー管理を自動化する
webdriver-managerのインストールコマンドを含めてください・コマンドプロンプト(またはPowerShell)で実行する内容を明確にコードブロックで書いてください
▼ テンプレ②:Mac用(M1/M2/M3チップ想定)
私はプログラミング初心者です。Mac(Apple Silicon搭載)で、Pythonを使ったスクレイピング(Selenium)環境を構築したいです。
以下の条件を満たす、具体的なインストール手順とターミナル用コマンドを順番に教えてください。
・Homebrewを使ったPythonのインストール手順を教えてください
・エディタはCursor(またはVSCode)を使用します
・仮想環境(venv)の構築手順も含めてください
・Seleniumと、ドライバー管理を自動化する
webdriver-managerのインストールコマンドを含めてください
▼ テンプレ③:VPS(Ubuntu)用(24時間稼働フェーズ用)
クラウドのVPS(Ubuntu 22.04 LTS)を契約したばかりの状態です。ここに24時間稼働させるためのSelenium(Headless Chrome)環境を構築したいです。
root権限でSSHログインした直後から入力すべきコマンドを順番に教えてください。
・パッケージのアップデート(apt update等)から始めてください
・Python3、pip、venvのインストールコマンドを含めてください
・Google Chrome本体(最新版)と、日本語フォントのインストール手順を含めてください
・Seleniumと
webdriver-managerのインストールコマンドを含めてください
2-3. 動作確認——「環境が正しく整ったか」をClaudeに検証させる
【結論】エラーが出たら絶対に自分で悩まないこと。エラーの全文か、画面のスクリーンショットをそのままClaudeに投げ返して「自己解決」させます。
手順通りに進めても、PC固有の設定(セキュリティソフトの干渉や旧バージョンの競合)によってエラーが赤文字で出ることがあります。この時、「どういう意味だろう?」と考える必要はありません。
【エラー発生時のAIデバッグ手順】
-
ターミナルに出た赤いエラー文を最初から最後まで一行残らずコピーする。
-
(UIの挙動がおかしい場合)該当部分のスクリーンショットを撮る。
-
以下のプロンプトと共に、Claudeに貼り付けて送信する。
エラー解消用プロンプト:
先ほどの手順を実行したところ、以下のエラーが出ました。原因と、これを解消するために次に入力すべきコマンドを教えてください。
【エラー内容】
(ここにコピーしたエラー文をそのまま貼り付ける)
この「エラーが出たらAIに丸投げする」というループを身につけることが、自動化bot開発において最も重要なスキル(デバッグ能力)となります。ここまで完了すれば、あなたの環境はAIとともにコードを動かす準備が完璧に整っています。
3. Claudeへのプロンプト設計——botの仕様を言語化する技術
【結論】AIに完璧なコードを出力させるための鍵は「要件定義の解像度」です。曖昧な指示はバグを生みます。この章こそが、動くbotを完成させるための最大のコア技術になります。
「Amazonの自動購入botを作って」といった1行のプロンプトでは、AIは一般的な(そして大抵は使い物にならない)コードしか出力しません。実務レベルで稼働するbotを作るには、人間のエンジニアに外注するのと全く同じレベルで「仕様の言語化」を行う必要があります。
3-1. 仕様を言語化する——「何をするbotか」を5項目で整理する
Claudeへプロンプトを投げる前に、以下の5項目を埋めるだけで、AIが迷いなく完璧なコードを組み上げる「設計図」が完成します。
-
対象サイト: どのURLを監視するか。ログインは必要か。
-
監視する条件: 「在庫あり」のテキストが出現した時か、特定価格を下回った時か、指定の時刻になった瞬間か。
-
購入トリガー(ゴール): 決済まで自動で完了させるか、カートに入れるだけで止めるか、通知のみに留めるか。
-
通知手段: 成功時やエラー時に、どこへ通知を送るか(Slack、LINE、Discordなど)。
-
エラー時の挙動: 要素が見つからない場合、何秒待って何回リトライするか。ログはどこに書き出すか。
3-2. Amazon用プロンプトテンプレ(コピペ可)
【結論】Amazonは仕様変更とbot検知が非常に厳しいため、まずは「決済エラーでのアカウント凍結」を防ぐために【監視+カート確保+通知】に留める設計が最も安全で実用的です。
以下のテキストをコピーし、URLやTokenをご自身のものに書き換えてClaudeに送信してください。
【Amazon在庫監視bot 生成プロンプト】
あなたは優秀なPythonエンジニアです。以下の要件を満たす、Amazonの在庫監視botのコードをSeleniumを用いて作成してください。
【要件定義】
・対象URL:[ここに監視したい商品のURL]
・ログイン処理:毎回ID/パスワードを入力すると検知されるため、事前に取得したChromeのユーザープロファイル(Cookie)を読み込み、ログインをスキップする仕様にしてください。
・監視条件:「カートに入れる」ボタン(またはそれに準ずる在庫ありの表示)が出現しているかを確認してください。
・アクション:在庫ありを検知した場合、「カートに入れる」処理まで行い、決済までは自動化しないでください(通知のみ)。
・ポーリング間隔:30秒(ただし検知回避のため、25秒〜35秒の間でランダムに揺らぎを持たせてください)。
・通知手段:在庫検知時、指定のSlack Webhook URL([ここにWebhook URL])に通知を送ってください。
・エラーハンドリング:要素が見つからない等のエラー発生時は、
error_log.txtにエラー内容とタイムスタンプを記録し、スクリプトを停止させずに次のループへ移行(リトライ)してください。
3-3. 楽天用プロンプトテンプレ(コピペ可)
【結論】楽天特有の「ショップごとにDOM構造(HTMLの書き方)が異なる」という仕様を突破するため、特定のCSSセレクタに依存しすぎない柔軟な条件指定が必要です。
【楽天在庫監視・自動購入bot 生成プロンプト】
あなたは優秀なPythonエンジニアです。以下の要件を満たす、楽天市場の自動購入botのコードをSeleniumを用いて作成してください。
【要件定義】
・対象URL:[ここに監視したい商品のURL]
・ログイン処理:Chromeのユーザープロファイルを読み込み、ログイン状態を維持してアクセスしてください。
・監視条件:商品ページの「買い物かごに入れる」ボタンが存在し、かつクリック可能な状態であること。
・アクション:ボタン検知後、即座にクリックし、注文確認画面へ遷移。そのまま「注文を確定する」ボタンを押下して購入を完了させてください。
・ポーリング間隔:60秒(50秒〜70秒のランダムな待機時間)。
・通知手段:購入完了時、または重大なエラーでスクリプトが停止した時にSlackへ通知を送ってください。
・エラーハンドリング:楽天はショップによってボタンのクラス名が異なる場合があります。ボタンが見つからない場合は、
error_log.txtに記録しつつ、ページをリロードして監視を継続してください。
3-4. チケットサイト用プロンプトテンプレ(コピペ可)
【結論】チケットサイトは「時間指定の時報アタック」と「待合室(キュー)システム」の突破が鍵になります。ただし、法的リスクが最も高まる領域であるため、仕様設計には細心の注意を払ってください。
3-4-1. 抽選申込と即時購入で指示文が変わる理由
チケット取得には2つのパターンがあり、AIへの指示も全く異なります。
-
抽選申込の自動化: 期間内にフォームに入力するだけの「作業の自動化」です。スピードは不要であり、エラーなく確実に入力させる設計(要素の読み込みを確実に待機するなど)が求められます。
-
先着順(即時購入)の自動化: 発売開始時刻(例:10時00分00秒)に合わせたミリ秒単位のアタックと、アクセス集中による「サーバーエラー(503など)」が出た際の高速リロード処理の実装が必須になります。
【チケット先着購入bot 生成プロンプト(基礎編)】
あなたは優秀なPythonエンジニアです。Seleniumを用いて、指定時刻にチケットサイトへアクセスするbotを作成してください。
【要件定義】
・対象URL:[対象チケットのURL]
・実行トリガー:スクリプト起動後、PCのシステム時計を監視し、指定時刻(例: 2026年7月1日 10:00:00)の0.5秒前に最初のリクエストを送信してください。
・アクション:ページ読み込み後、指定の席種(例:「S席」というテキストを含む要素)を選択し、決済画面へ遷移してください。
・エラーハンドリング:アクセス集中により「503 Service Unavailable」や待機画面が出た場合は、要素が出現するまで1秒間隔でリロードを繰り返してください。
3-4-2. チケット不正転売禁止法の範囲整理(必ず確認すること)
チケットを対象とするbotを稼働させる場合、技術的ハードルよりも「法的リスク」のコントロールを最優先に設計しなければなりません。競合の技術記事では看過されがちですが、ここはビジネスや人生を狂わせないための絶対条件です。
-
合法(グレーだが刑事罰の対象外): 自分、または家族や友人が実際にイベントへ行く目的(個人利用)でbotを使用し、定価で購入すること。これはサイトの利用規約違反にはなり得ますが、転売防止法の対象外です。
-
違法(逮捕リスク大): 興行主が「転売禁止」を明記している特定興行入場券を、「業として(反復継続して)」「販売価格を超える価格で」転売する目的で取得すること。
利益を抜くためのチケットbot運用は、現代では完全に「ブラック」な行為です。本記事の手法は、あくまで「自身の正当な消費機会を、転売ヤーのbotから防衛するための技術的対抗措置」としてのみ活用してください。
4. Claudeが出したコードの検証——ここだけは人間がやる
【結論】AIが生成したコードをそのまま実行してはいけません。現在のAI開発において人間の唯一にして最大の役割は、出力されたコードの「脆弱性」を検証し、修正を指示することです。
AIを活用したbot開発の記事において、ほとんどのケースで抜け落ちているのがこの「人間による検証フェーズ」です。どんなに優れたプロンプトを投げても、一発で100%完璧なコードが出てくることは稀です。ここでは、エンジニアの目線で「AIのコードのどこを疑うべきか」を論理的に解説します。
4-1. Claudeは動かないコードを自信満々で出す——その構造的理由
【結論】LLM(大規模言語モデル)は、対象サイトの「現在の仕様」を見てコードを書いているわけではありません。過去の学習データから「もっともらしいコード」を確率的に生成しているだけです。
Claudeは非常に優秀ですが、出力するコードには常に「ハルシネーション(もっともらしい嘘)」が混ざるリスクがあります。特にスクレイピングにおいて、AIは数年前の古いHTML構造をベースにコードを書き上げることがよくあります。
「AIを信じすぎるな」という精神論ではなく、「AIはDOM(サイトの構造)とエラー処理の予測を外す」という構造的弱点を理解し、そこだけを重点的にチェックする「検証の型」を持つことが重要です。
4-2. 必ず確認する3つのポイント
出力されたコードをコピペする前に、以下の3箇所だけは必ず目視で確認してください。プログラミングの深い知識は不要です。該当する記述があるかどうかを探すだけです。
4-2-1. XPathがハードコードされていないか
【結論】要素の指定に長大なXPath(/html/body/div[1]/div[3]/form/span...)が使われているコードは、サイト側が少しでもデザインを変更した瞬間に即死(エラー)します。
AIは要素の特定に迷うと、絶対パスであるXPathを記述しがちです。しかし、Amazonや楽天は頻繁にHTMLの構造を微細に変更します。
-
確認箇所:
find_element(By.XPATH, "/html/...")という長い記述がないか。 -
修正指示文: 見つけた場合は、そのまま実行せずにClaudeへこう指示してください。
「ボタンの特定に長大なXPathを使用しないでください。サイトの構造変更に弱いため、
By.CSS_SELECTORやBy.ID、または特定のテキスト(例: ‘カートに入れる’)を持つ要素を柔軟に検索するロジックに変更してください。」
4-2-2. エラー時にクラッシュしないか(try-except構造の確認)
【結論】「ボタンが見つからなかった時」にスクリプト全体が停止してしまうコードは、24時間稼働のbotとしては欠陥品です。
ネットワークの遅延や、サイト側の一時的な負荷により、画面の読み込みが遅れることは日常茶飯事です。その際、1回のエラーでbotが止まってしまっては意味がありません。
-
確認箇所:
try:とexcept:というブロック(例外処理)で処理が囲まれているか。 -
チェックリスト:
-
エラーが発生した際、
printやファイル書き込みでログを残す仕様になっているか。 -
エラー後、スクリプトが終了せず、
continueや数秒の待機を挟んで次のループ(リトライ)に戻る構造になっているか。
-
4-2-3. ポーリング間隔が設定されているか
【結論】while True:(無限ループ)の中に待機時間(sleep)がないコードを実行すると、1秒間に数百回のアタックを仕掛けるDDoS攻撃と同義になり、一瞬でIPアドレスがBANされます。
Claudeは処理のロジックに集中するあまり、この「人間らしい待機時間」の記述をあっさり省略することがあります。
-
確認箇所: ループの中に
time.sleep(30)や、ランダムな待機時間(random.uniform(25, 35))が確実に設定されているか。 -
注意: これが抜けている場合は、絶対に実行してはいけません。必ず待機時間を追加させてください。
4-3. 動かなかった時のClaude投げ方テンプレ
【結論】エラーが出た際、「動きません」とだけ伝えるのは最悪のプロンプトです。AIに自己修復させるには「文脈・エラー全文・発生箇所」の3点セットを必ず渡してください。
万が一検証をすり抜けてエラーで止まってしまった場合は、以下のフォーマットをそのままコピーし、内容を埋めてClaudeに投げ返してください。この情報さえ揃っていれば、AIは95%以上の確率で自らバグを特定し、修正版のコードを出力します。
【エラー修正依頼プロンプト】
出力されたコードを実行したところ、以下のエラーが発生しました。原因を特定し、修正済みの完全なコードを出力してください。
・エラー文(ターミナルの出力全文):
[ここに赤いエラー文を最初から最後までコピペする]
・発生箇所(どのような操作をしようとした時か):
[例:商品ページを開いて、「カートに入れる」ボタンをクリックしようとした直後]
・現在のコード(該当部分周辺、または全体):
[ここに現在実行しているコードをコピペする]
・環境:
[例:Windows11 / Python 3.11 / Chrome最新版]
5. Cursorを使った開発フロー——より速く・より深く作り込む
【結論】実用レベルのbotを最速で構築・運用したいのであれば、ブラウザ上の「Claude.ai」を卒業し、AI搭載エディタである「Cursor」へ移行することが最終回答となります。
本記事のここまでの内容は、あくまで「自動購入botのロジックをどう組み立てるか」という基礎でした。しかし、実際の開発現場や継続的な運用において、ブラウザのClaude画面と自分のエディタ(VSCodeなど)を往復する「コピペ作業」は、すぐに限界を迎えます。
この章では、他記事ではほとんど語られない「Cursor」を用いた、より高度でモダンな開発フローを解説します。
5-1. Claude.ai単体 vs Cursor——何が違うか
【結論】最大の決定的な違いは「プロジェクト全体のコンテキスト(文脈)をAIが理解しているかどうか」と「ファイル操作の自動化」です。
-
Claude.ai(ブラウザ版): 優秀な「相談相手」です。プロンプトを投げれば素晴らしいコードを出力しますが、それを自分のPCのどのファイルに保存し、どう実行するかは「人間」が管理する必要があります。ファイル数が2つ、3つと増えると、AIは全体像を見失い始めます。
-
Cursor(AIエディタ): 優秀な「共同開発者」です。CursorはVSCodeをベースにAI(Claude 3.5 Sonnet等)を統合したエディタであり、あなたが現在開いているファイル群やフォルダ構造をすべて把握しています。「ここを直して」と指示すれば、AI自身がファイルを直接書き換え、複数ファイルにまたがる修正も一発で完了させます。
5-2. Cursorで自動購入botを作る具体的フロー
Cursorを導入することで、これまでの「コードを書いてもらう」という感覚から、「システム全体を組み上げてもらう」という次元へ進化します。
5-2-1. プロジェクト構成をComposerに設計させる
【結論】単一のPythonファイル(main.py)にすべてを詰め込む素人コードから脱却し、実務レベルの美しいファイル構成をAIに丸投げします。
Cursorの強力な機能である「Composer(Ctrl+I または Cmd+I)」を使えば、チャットで指示するだけで必要なファイル群を自動生成してくれます。
【Composerへの指示プロンプト例】
「Amazonの自動購入botを作ります。保守性を高めるため、以下の構成でプロジェクトの雛形と全ファイルを生成してください。
・
main.py(実行の起点)・
config.json(URLや設定値の管理)・
logger.py(エラーや動作ログの記録)・
scraper.py(Seleniumの主要ロジック)」
この指示を投げるだけで、Cursorは一瞬で4つのファイルを作成し、それぞれのファイルが連携して動くように中身のコードまで連携させて記述します。人間は「Accept(承認)」ボタンを押すだけです。
5-2-2. エラーが出たらその場でCtrl+Kで修正指示
【結論】エラー文をコピーしてブラウザに貼り付ける時代は終わりました。エラー箇所を選択し、ショートカットキーを押すだけでデバッグが完了します。
bot開発にエラーはつきものですが、Cursor環境下ではデバッグのタイムロスがほぼゼロになります。
-
ターミナルで実行し、エラー(例外)が発生する。
-
エラーの原因となっているコード行をマウスでハイライト(選択)する。
-
Ctrl+K(MacはCmd+K)を押す。 -
出現した入力欄に「ここで
ElementNotInteractableExceptionが出る。修正して」と打ち込む。 -
AIがその場でコードの修正案(差分)を赤と緑のハイライトで提示してくるので、問題なければ
Enterを押して適用する。
この「インライン編集機能」により、コードの修正から再実行までのサイクルが数秒で回せるようになります。
5-3. Claude.ai で作ってCursorで育てる——推奨ワークフロー
【結論】「ゼロからイチ」はブラウザのClaude.aiで設計を練り、「イチからヒャク」への拡張と運用はCursorで行う。これが最も効率的な分業フローです。
すべてを最初からCursorで行うのも一つの手ですが、最も挫折しにくい推奨ワークフローは以下の通りです。
-
フェーズ1:プロンプト設計とプロトタイプ作成(Claude.ai)
第3章で解説した「要件定義」のプロンプトをブラウザのClaude.aiに投げ、まずは単一のファイルで動く「検証用のプロトタイプ(骨格)」を作らせます。ブラウザ版は深い対話と壁打ちに向いているため、ここで仕様の粗を潰します。
↓
-
フェーズ2:実稼働環境への移行とリファクタリング(Cursor)
動くコードができたら、それをCursorのプロジェクトに持ち込みます。ここからはCursorの出番です。「このコードを機能ごとに分割して」「エラー処理をもっと堅牢にして」「ヘッドレスモード(画面非表示)のオプションを追加して」といった、システムの「育成・拡張」をCursor上のAIとともに行います。
↓
-
フェーズ3:保守・運用(Cursor)
サイトの仕様変更でbotが突然動かなくなった場合も、Cursor上でエラー箇所を選択し
Ctrl+Kを叩くだけで、最新のDOM構造に合わせた修正が即座に完了します。
この「作って、育てる」フローを身につければ、単なるbotの自作にとどまらず、あらゆる業務自動化ツールを自由自在に生み出せる強靭な「開発力」が手に入ります。
6. VPS運用——月1,000円で24時間稼働させる
【結論】自分のPCを24時間つけっぱなしにするのは現実的ではありません。月額1,000円程度のVPS(仮想専用サーバー)を借りてクラウド上にbotを移住させ、真の「完全自動化」を完了させます。
自動購入botの真価は「あなたが寝ている間も、仕事をしている間も、休まず監視し続けること」です。多くのスクレイピング記事は「VPSを借りましょう」という一言で終わってしまいますが、初心者がいきなり黒い画面(Linux)に放り出されれば確実に挫折します。
この章では、VPSの構築から常時稼働の設定に至るまで、「すべてのLinuxコマンドと設定ファイルをClaudeに書かせる」という現代の運用アプローチを解説します。
6-1. VPS選定(さくら・ConoHa・Vultr比較表)
まずはbotの「住処」を確保します。bot1台を稼働させるだけであれば、最低スペック(メモリ1GB・CPU1〜2コア)のプランで十分です。
| サービス名 | 月額料金(目安) | 基本スペック | 日本語サポート | 特徴・おすすめのユーザー |
| ConoHa VPS | 約1,000円 | 1GB / 2Core | 完全対応 | **【初心者向け】**管理画面のUIが圧倒的に直感的で使いやすい。 |
| さくらのVPS | 約1,000円 | 1GB / 2Core | 完全対応 | **【安定志向】**歴史が長く、サーバーの安定性に定評がある。 |
| Vultr | 約900円($6) | 1GB / 1Core | 英語のみ | **【中・上級者向け】**時間課金のため、チケット発売日だけ数時間借りて捨てるような運用が可能。 |
OSは、ネット上に情報が多くClaudeも得意としている「Ubuntu 22.04 LTS(または24.04)」を選択してください。
6-2. 環境構築をClaudeにやらせる
【結論】Linuxの難解なコマンドを暗記する必要はありません。あなたのVPSのOSをClaudeに伝え、環境構築用のコマンドを一筆書きで出力させます。
VPSを契約し、コンソール(黒い画面)にログインしたら、ブラウザ上のClaudeに以下のプロンプトを投げてください。
【VPS環境構築コマンド生成プロンプト】
VPS(Ubuntu 22.04 LTS)を契約しました。ここにHeadless Chrome(画面なし)でSeleniumを動かすための環境を構築したいです。
root権限でSSHログインした直後から、以下の要件を満たすためのコマンドを順番に教えてください。
・パッケージのアップデート(apt update等)
・Python3、pip、仮想環境(venv)のインストール
・Google Chrome本体(最新安定版)のインストール
・日本語サイトのスクレイピングで文字化けしないための日本語フォントのインストール
・Seleniumとwebdriver-managerのインストール(venv環境下で)
※ターミナルにコピペしやすいよう、コードブロックでまとめて出力してください。
出力されたコマンドを上から順にコピペして実行するだけです。もし赤いエラーが出た場合は、第2章と同じく「このエラーが出ました」とそのままClaudeに投げ返せば、解決用コマンドを即座に提示してくれます。
6-3. 常時稼働設定(cronとsystemd)
スクリプトをVPSにアップロードして実行できたとしても、SSH接続(黒い画面)を閉じるとbotも一緒に停止してしまいます。そこで、サーバーのシステム機能を使って「いつ動かすか」「止まったらどうするか」を定義します。
ここが運用フェーズ最大の壁ですが、設定ファイルもすべてClaudeに書かせます。用途に合わせて以下の2つの手法を使い分けてください。
6-3-1. crontabでbot定時起動——Claudeに設定ファイルを書かせる
用途: 「毎日朝9時55分にチケットサイトの監視を開始する」など、決まった時間に動かしたい場合。
Linuxの機能である「cron」を使います。cronの記述は「仮想環境のPythonのパス」を指定し忘れて動かないという罠が非常に多いため、プロンプトで先回りして指示します。
【cron設定生成プロンプト】
私のVPS(Ubuntu)で、Pythonスクリプトを定時実行するためのcron設定(crontabの書き方)を教えてください。
【要件】
・実行したい時間:毎日 09:55
・スクリプトの場所:
/home/user/bot/main.py・Pythonのパス:仮想環境のものを使用(
/home/user/bot/venv/bin/python)・ログの出力先:実行時のログやエラーを
/home/user/bot/cron.logに追記してください。
6-3-2. systemdでクラッシュ時の自動再起動——同上
用途: Amazonや楽天の在庫を「24時間365日」監視し続けたい場合。
24時間稼働のbotは、サイト側の一時的なサーバーエラーやネットワークの瞬断によって、必ずどこかで一度はクラッシュ(異常終了)します。これを監視し、「死んだら10秒後に自動で生き返らせる」ための最強の機能が「systemd」です。
【systemd設定生成プロンプト】
24時間監視用のPythonスクリプトを、Ubuntuのsystemdを使ってバックグラウンドサービスとして常時稼働させたいです。以下の要件を満たす
.serviceファイルの記述内容と、それを登録・起動・確認するためのコマンドを順番に教えてください。【要件】
・サービス名:
amazon-bot.service・実行ディレクトリ(WorkingDirectory):
/home/user/bot・実行コマンド(ExecStart):仮想環境のPython(
/home/user/bot/venv/bin/python)でmain.pyを実行・再起動設定:スクリプトがエラーで終了(クラッシュ)した場合、10秒後に自動で再起動(
Restart=alwaysおよびRestartSec=10)するようにしてください。・ログの出力:標準出力とエラー出力は通常通りjournalctlで確認できるようにしてください。
この設定を完了させ、sudo systemctl start amazon-bot.service を叩いた瞬間、あなたのbotは完全に自立します。PCを閉じても、スマホで遊んでいても、クラウド上のbotが数秒に一度の監視ループを回し続け、目当ての商品の在庫が復活した瞬間にSlackへ通知を飛ばし(あるいは決済を完了させ)ます。
これこそが、AIとクラウドを駆使した「現代の個人向け業務自動化」の到達点です。
7. メンテナンス——壊れた時もAIで即復旧する
【結論】スクレイピングbotの真のコストは「開発」ではなく「保守」にあります。しかし、AIを活用すれば、サイト側のUI変更でbotが停止した際の復旧作業(MTTR)を数分に短縮できます。
Amazonや楽天のような巨大ECサイトは、A/Bテストやbot対策のために頻繁にHTMLの構造(DOM)を変更します。昨日まで完璧に動いていたbotが突然「要素が見つかりません」というエラーを吐いて停止するのは、異常ではなく「日常」です。
本章を読むと、以下の仕組みが構築できます。
-
脱・手作業デバッグ: サイト構造が変わった際、新しい指定コードをAIに数秒で逆算させる手順
-
異常の早期検知: 本番の購入チャンスを逃す前に、botの死活を自動判定する監視パイプラインの導入
エラー画面を見て焦る必要はもうありません。保守作業もまた、論理的な手順に沿ってAIに丸投げするフェーズへと移行しています。
7-1. XPathが動かなくなった時のClaude活用フロー
【結論】コード内のXPathやCSSセレクタが機能しなくなった時は、自力で新しいパスを探り当てるのではなく、ChromeのDevToolsで取得した「生のHTML」をClaudeに解析させて再構築するのが最適解です。
サイトのデザインが変わり、「カートに入れる」ボタンがクリックできなくなったとします。この時、最もやってはいけないのが「ソースコードを睨みながら手作業でXPathを書き直すこと」です。以下の3ステップでAIに修復させてください。
【AIを活用した即時復旧の3ステップ】
-
最新のHTMLを取得する:
対象の商品ページをChromeで開き、F12キーを押して「デベロッパーツール」を起動します。画面上の矢印アイコン(選択ツール)を使って新しい「カートボタン」をクリックし、ハイライトされたHTMLタグを右クリックして
Copy→Copy element(またはCopy outerHTML)を選択します。 -
周辺の構造も含めてコピーする(重要):
ボタン単体のタグだけでなく、その親要素(一つ上の
<div>など)も含めてコピーしておくと、AIの解析精度が飛躍的に高まります。 -
Claudeへ修復プロンプトを投げる:
取得したHTMLテキストと、現在エラーが出ているコードをセットにしてAIへ渡します。
【XPath・セレクタ修復用プロンプト】
botが「TimeoutException(要素が見つからない)」で停止しました。サイトの仕様変更が原因です。
以下の【現在のコード】を、【新しいHTML構造】に合わせて修正してください。
その際、サイトの微細な変更にすぐ壊れるようなハードコードされた絶対パス(長大なXPath)は避け、変更に強い柔軟なCSSセレクタ、またはテキストベースの検索ロジックを提案してください。
【現在のコード】
driver.find_element(By.XPATH, "/html/body/div[2]/div/span/button").click()【新しいHTML構造(DevToolsからコピー)】
[ここにコピーしたHTMLをそのまま貼り付ける]
このプロンプトにより、Claudeは「なぜ前のコードが動かなくなったのか」を論理的に把握し、より堅牢で保守性の高い要素指定コードを一瞬で生成します。あとはそれをCursor等で適用(Ctrl+K)するだけで復旧完了です。
7-2. サイトのHTML変更をいち早く検知する方法
【結論】「いざ目当ての商品が入荷した瞬間にbotが壊れていて買えなかった」という最悪の事態を防ぐため、購入ロジックとは別に、1日1回稼働する軽量な「差分検知スクリプト」を走らせておくのがプロの運用です。
botの運用において、エラーの発生を「本番の実行時」に知るようでは遅すぎます。対象サイトの構造が変化したことを事前に検知し、余裕を持ってメンテナンスを行うための「監視の監視」を実装します。
【差分検知の仕組みと運用頻度】
-
頻度の目安: 毎日1回(例:深夜3時)など、サーバーへの負荷が少なく、かつ本番の稼働に影響しない時間帯に実行します。
-
検知のロジック: 購入ボタン周辺のHTMLブロックを取得し、その構造のハッシュ値(データの一意な文字列)を記録。前回の実行時とハッシュ値が異なれば「サイト構造に変更あり」と判定します。
これもゼロから書く必要はありません。Claudeに以下のように指示してスクリプトを生成させ、VPSのcron(定期実行)に追加するだけです。
【UI変更検知スクリプト作成プロンプト】
既存の自動購入botとは別に、サイトのHTML構造(DOM)の変更を早期検知するための軽量なPythonスクリプトを作成してください。
【要件定義】
・対象URL:[ダミーの常設商品URLなど]
・取得対象:ページ内の「カートに入れる」ボタンを囲む特定のブロック(例:
id="buybox"など)のinnerHTMLを取得。・差分判定:取得したHTML文字列のハッシュ値(SHA-256等)をローカルのテキストファイルに保存しておき、次回の実行時にハッシュ値が一致するか比較してください。
・アクション:ハッシュ値が変化していた(=サイト構造が変わった)場合のみ、指定のSlack Webhookに「⚠️対象サイトのUIが変更された可能性があります。botのメンテナンスが必要です」という警告を送信してください。
この「変更検知パイプライン」を仕込んでおくことで、あなたはSlackにアラートが飛んできた時だけ、7-1の手順で5分間のメンテナンスを行えばよくなります。無駄な巡回確認や目視チェックなどの感情的・時間的ノイズを完全に排除し、常に論理的で安定した自動化システムを維持してください。
8. よくある質問(FAQ)
bot開発やAIの活用に関して、初心者がつまづきやすい疑問とその回答をまとめました。
Q1. Pythonをほとんど書けなくても作れますか?
【回答】完全に作成可能です。現在のボトルネックは「プログラミングスキル」ではありません。
コードの記述自体は100% Claudeが代行します。あなたが担うべき役割は、コードを書くことではなく「仕様の言語化(要件定義)」「動作確認」「エラー発生時のAIへの適切な指示(壁打ち)」の3点のみです。本記事で提供しているプロンプトテンプレートをそのまま活用すれば、文法を一切知らなくても最短ルートで動くbotが完成します。
Q2. ClaudeとCursorはどちらを使えばいいですか?
【回答】「まずはClaude.aiで骨格を作り、Cursorで育てていく」という分業フローが現在の最適解です。
開発初期の「どんな構成にするか」「最初のプロトタイプ作り」といったゼロイチの段階では、対話に特化したブラウザ版のClaude.ai単体で十分に完結します。しかし、コードが完成し「エラー処理を追加したい」「複数ファイルに分割したい」といったフェーズに入ったら、プロジェクト全体を読み込めるCursorにコードを移行してください。この使い分けが最も効率的で挫折しない開発手法です。
Q3. Claudeが出したコードが動かない場合はどうすればいいですか?
【回答】「エラー文・発生箇所・現在のコード・実行環境」の4点をセットにして、Claudeに丸投げしてください。
AIが最も苦手とするのは「動きません」という文脈のない指示です。第4章で紹介した「エラー修正依頼テンプレ」を使用し、ターミナルに出た赤いエラー文を1行残らずコピペして投げてみてください。前提条件さえ揃っていれば、Claudeは95%以上の確率で自ら原因を特定し、1〜2回のやり取りで完璧に修正されたコードを出力してくれます。
Q4. VPS(仮想サーバー)は必須ですか?
【回答】必須ではありませんが、実運用を考慮すると導入を「強く推奨」します。
ご自身のPCでもbotは動きますが、「PCの電源を常にオンにしておく必要がある」「外出時にノートPCを閉じると監視が止まる」という致命的な制約があります。月額1,000円〜1,500円程度のVPSを契約すれば、これらのストレスから完全に解放されます。最大の障壁であった「VPSの環境構築(Linuxコマンド)」も、現在はClaudeに聞けばすべて一筆書きで出力してくれるため、恐れる必要はありません。
Q5. 既製ツール(Shop Ding Dongなど)と自作botはどう使い分ければいいですか?
【回答】「導入スピード」を優先するなら既製ツール、「拡張性とコスト削減」を求めるなら自作botです。
「今日すぐに動かしたい」「楽天やAmazonの基本的な監視だけで十分」という明確な目的がある場合は、Shop Ding Dongのような優秀な既製ツールを利用するのが手っ取り早いです。
一方で、「特定のマイナーなサイトを監視したい」「『〇〇円以下になったら』という複雑な条件を入れたい」「高額な有料ツールのサブスク代を削りたい」という場合は自作一択となります。AIの登場により自作の技術的ハードルはほぼ崩壊しているため、独自の自動化資産を持ちたい方は自作に挑戦する価値が十分にあります。
※既製ツールの詳細な比較や設定手順については、こちらの記事で詳しく解説しています。




コメント