バラバラの技術を組み合わせたら、印鑑機が完成する

前の章で、私たちは3つの独立した魔法のような技術を学びました:

  1. Pythonスクレイピング:競合サイトから商品価格をすべて収集できる。
  2. Pandasデータ分析:平均価格と最高/最安値を数秒で計算できる。
  3. データ可視化:冷たい数字を、上司が理解できる美しい棒グラフに変換できる。

もし上司が「今すぐ」レポートを作成するように求めてきたら、この3つのプログラムを5分で実行して提出できます。 しかし上司が「このレポート素晴らしい!今日から毎朝8時までに最新のレポートを私の机に置いてくれ!」と言ったらどうしますか?

毎朝7時50分にアラームをセットしてプログラムを手動で実行しますか? もちろんそんなことはしません。真のVibe Coderは、これらのスクリプトを「完全自動化されたスーパーボット」に組み立て、クラウドサーバー上で24時間働かせます。


究極のコラボレーション:「自分でメールを送信する」統合スクリプトを書く

今日はAIに「大融合」Pythonスクリプトを書いてもらいます。 このスクリプトは起動後、次の順序で動作します:データ収集 → 平均計算 → グラフ作成 → 最後にこのグラフを添付ファイルとして、上司のメールボックスに自動送信!

これにはPythonのメール送信コアライブラリであるsmtplibemailモジュールが関わってきます。 Pythonでメールを送信する最も推奨される方法はGmailのSMTPサーバーを使用することですが、Googleアカウント設定で「アプリパスワード(App Password)」を有効にする必要があります。決して実際のGmailログインパスワードをコードに書かないでください!

【全自動レポート送信Prompt】 私は既にscrape_laptops()(スクレイピング関数)とdraw_price_chart()(グラフ描画関数、price_compare.pngを出力)を書き終えています。 send_report_emailという名前の関数を書いてください。 要件は以下の通りです:

  1. Pythonのsmtplibemailパッケージを使用し、Gmail経由でメールを送信してください。
  2. 件名は「📊 日次市場動向:ゲーミングノートPC競合価格分析レポート」に設定してください。
  3. 本文(Body)には専門的なレポートの導入文を記載してください。
  4. 最も重要なステップ:作成したprice_compare.png画像ファイルをメールの添付ファイル(Attachment)として含めてください。
  5. 送信完了後、「✅ レポートを上司のメールボックスに正常に送信しました!」と出力してください。
  6. 完全な送信ロジックをパッケージ化し、日本語のコメントを追加してください。

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つあります:

  1. オールドスクールエンジニアのロマン(Crontab):家に電源を切らない古いノートPCがある場合、またはAWSのLinuxサーバーをレンタルしている場合。システム組み込みのcrontabコマンドを設定できます: 0 8 * * * python3 /path/to/your/script.py この魔法のコマンドは:毎日08:00に、システムが自動的にこのPythonスクリプトを実行します。
  2. モダンクラウドの覇者(GitHub Actions):これは無料で、コンピュータを常時稼働させる必要もない最強の技術です。 このPythonスクリプトをGitHubにプッシュできます。そしてGitHubリポジトリ内に.github/workflows/schedule.ymlという設定ファイルを作成します。 GitHubに「毎朝8時に、無料の仮想マシンを起動し、Pythonをダウンロードし、パッケージをインストールし、最後にこのメール送信プログラムを実行してください!」と指示できます。

おめでとうございます!この5つのレッスンを通じて、あなたはデータを知らない素人から、「完全自動化された商業インテリジェンスシステム」を独自に開発できるトップクラスのデータエンジニアに進化しました! 未来の世界はデータが支配します。そして今、このデータの宝庫を開く鍵は、しっかりとあなたの手の中にあります。次のAIプロジェクトに向かって前進しましょう!

完全なチュートリアルをロック解除

このチャプターは有料コンテンツです。プロジェクトに参加して、10以上の神レベルのPromptや実際のソースコード例を含む、5000字以上の深い分析をロック解除してください!