バラバラの技術を組み合わせたら、印鑑機が完成する
前の章で、私たちは3つの独立した魔法のような技術を学びました:
- Pythonスクレイピング:競合サイトから商品価格をすべて収集できる。
- Pandasデータ分析:平均価格と最高/最安値を数秒で計算できる。
- データ可視化:冷たい数字を、上司が理解できる美しい棒グラフに変換できる。
もし上司が「今すぐ」レポートを作成するように求めてきたら、この3つのプログラムを5分で実行して提出できます。 しかし上司が「このレポート素晴らしい!今日から毎朝8時までに最新のレポートを私の机に置いてくれ!」と言ったらどうしますか?
毎朝7時50分にアラームをセットしてプログラムを手動で実行しますか? もちろんそんなことはしません。真のVibe Coderは、これらのスクリプトを「完全自動化されたスーパーボット」に組み立て、クラウドサーバー上で24時間働かせます。
究極のコラボレーション:「自分でメールを送信する」統合スクリプトを書く
今日はAIに「大融合」Pythonスクリプトを書いてもらいます。 このスクリプトは起動後、次の順序で動作します:データ収集 → 平均計算 → グラフ作成 → 最後にこのグラフを添付ファイルとして、上司のメールボックスに自動送信!
これにはPythonのメール送信コアライブラリであるsmtplibとemailモジュールが関わってきます。
Pythonでメールを送信する最も推奨される方法はGmailのSMTPサーバーを使用することですが、Googleアカウント設定で「アプリパスワード(App Password)」を有効にする必要があります。決して実際のGmailログインパスワードをコードに書かないでください!
【全自動レポート送信Prompt】 私は既に
scrape_laptops()(スクレイピング関数)とdraw_price_chart()(グラフ描画関数、price_compare.pngを出力)を書き終えています。send_report_emailという名前の関数を書いてください。 要件は以下の通りです:
- Pythonの
smtplibと- 件名は「📊 日次市場動向:ゲーミングノートPC競合価格分析レポート」に設定してください。
- 本文(Body)には専門的なレポートの導入文を記載してください。
- 最も重要なステップ:作成した
price_compare.png画像ファイルをメールの添付ファイル(Attachment)として含めてください。- 送信完了後、「✅ レポートを上司のメールボックスに正常に送信しました!」と出力してください。
- 完全な送信ロジックをパッケージ化し、日本語のコメントを追加してください。
AIが生成した自動送信スクリプト:
import smtplib
from email.mime.multipart import MIMEMultipart
from email.mime.text import MIMEText
from email.mime.application import MIMEApplication
import os
def send_report_email():
# あなたのGmailアカウントと新しく申請した「アプリ専用パスワード」
# (実際の運用では、これらの機密情報は.envファイルに保存すべきです。ここでは教育目的で直接記載しています)
sender_email = "your_email@gmail.com"
sender_password = "あなたの_APP_パスワード"
receiver_email = "boss@company.com"
# 1. メールの基本構造を作成(件名、送信元、送信先を含む)
msg = MIMEMultipart()
msg['Subject'] = "📊 日次市場動向:ゲーミングノートPC競合価格分析レポート"
msg['From'] = sender_email
msg['To'] = receiver_email
# 2. メール本文を作成して封筒に挿入
body_text = """
上司様、おはようございます:
本日(2024年)の最新ゲーミングノートPC競合市場価格分析レポートをお送りします。
主要3つのECプラットフォームから最新価格を収集し、各ブランドの平均価格棒グラフを作成しました。
詳細なグラフは本メールの添付ファイル(price_compare.png)をご覧ください。
どうぞよろしくお願いいたします
Vibe データ分析チーム
"""
msg.attach(MIMEText(body_text, 'plain', 'utf-8'))
# 3. 画像を添付ファイルとして追加
file_path = 'price_compare.png'
if os.path.exists(file_path):
with open(file_path, 'rb') as file:
attachment = MIMEApplication(file.read(), _subtype="png")
attachment.add_header('Content-Disposition', 'attachment', filename=file_path)
msg.attach(attachment)
else:
print("🚨 画像ファイルが見つかりません、添付できません!")
return
# 4. Googleの郵便局(SMTP)にログインし、メールを送信!
try:
# GoogleのSMTPサーバーを使用(ポート587は安全な暗号化チャネルを使用)
server = smtplib.SMTP('smtp.gmail.com', 587)
server.starttls() # 暗号化を開始
server.login(sender_email, sender_password)
server.send_message(msg)
server.quit() # 送信後接続を閉じる
print(f"✅ レポートを上司のメールボックス({receiver_email})に正常に送信しました!")
except Exception as e:
print(f"🚨 メール送信失敗:{e}")
# ==========================================
# 究極のコラボレーション:すべてのタスクをワンクリックで実行
# ==========================================
if __name__ == "__main__":
print("🤖 日次レポートボットを起動中...")
# scrape_laptops() # スクレイピングを実行
# draw_price_chart() # グラフ作成を実行
send_report_email() # メールを送信!
真の「自動化」へ:CrontabとGithub Actions
このプログラムは完璧に動作しますが、最後の一歩が残っています:「どうすれば毎朝8時に自動で実行できるか?」
主流な方法は2つあります:
- オールドスクールエンジニアのロマン(Crontab):家に電源を切らない古いノートPCがある場合、またはAWSのLinuxサーバーをレンタルしている場合。システム組み込みの
crontabコマンドを設定できます:0 8 * * * python3 /path/to/your/script.pyこの魔法のコマンドは:毎日08:00に、システムが自動的にこのPythonスクリプトを実行します。 - モダンクラウドの覇者(GitHub Actions):これは無料で、コンピュータを常時稼働させる必要もない最強の技術です。
このPythonスクリプトをGitHubにプッシュできます。そしてGitHubリポジトリ内に
.github/workflows/schedule.ymlという設定ファイルを作成します。 GitHubに「毎朝8時に、無料の仮想マシンを起動し、Pythonをダウンロードし、パッケージをインストールし、最後にこのメール送信プログラムを実行してください!」と指示できます。
おめでとうございます!この5つのレッスンを通じて、あなたはデータを知らない素人から、「完全自動化された商業インテリジェンスシステム」を独自に開発できるトップクラスのデータエンジニアに進化しました! 未来の世界はデータが支配します。そして今、このデータの宝庫を開く鍵は、しっかりとあなたの手の中にあります。次のAIプロジェクトに向かって前進しましょう!