當你把零散的技術組合起來,就成了印鈔機

在前面的章節,我們學會了三項獨立的神奇技術:

  1. Python 爬蟲:能夠去競爭對手的網站,把商品價格全部抓下來。
  2. Pandas 數據分析:能夠在幾秒鐘內,計算出平均價格與最高/最低價。
  3. 資料視覺化:能夠把這些冷冰冰的數字,變成一張老闆看得懂的精美長條圖。

如果你的老闆要你「現在」做一份報告,你可以花 5 分鐘把這三個程式跑一遍交差。 但如果老闆說:「這個報表很棒!從今天開始,你每天早上 8 點都要把最新一天的報表放到我的辦公桌上!」

你難道要設定鬧鐘,每天早上 7 點 50 分起床去點擊執行程式嗎? 當然不要。一個真正的 Vibe Coder,會把這些腳本組裝成一個「全自動的超級機器人」,讓它在雲端伺服器上 24 小時為你工作。


終極大會串:寫一個「會自己寄 Email」的綜合腳本

今天我們要請 AI 幫我們寫一份「大融合」的 Python 腳本。 這份腳本在啟動後,會依序執行以下動作:爬資料 -> 算平均 -> 畫圖表 -> 最後把這張圖表當作附件,自動發送一封 Email 到老闆的信箱!

這牽涉到了 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. 信件主旨請設定為:「📊 每日市場動態:電競筆電競品價格分析報表」。
  3. 信件內文 (Body) 請寫上一段專業的報告開場白。
  4. 最重要的一步:請將剛剛畫好的 price_compare.png 圖片檔案,作為附件 (Attachment) 夾帶在這封 Email 裡面。
  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'] = "📊 每日市場動態:電競筆電競品價格分析報表"
    msg['From'] = sender_email
    msg['To'] = receiver_email

    # 2. 撰寫信件內文並塞入信封
    body_text = """
    老闆早安:
    
    這是今日 (2024年) 最新的電競筆電競品市場價格分析報表。
    我們已經爬取了三大電商平台的最新報價,並針對各品牌繪製了平均價格長條圖。
    
    詳細圖表請見本信件的附件 (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 伺服器 (Port 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 點自己跑起來?」

你有兩種主流的做法:

  1. 老派工程師的浪漫 (Crontab):如果你家裡有一台不關機的舊筆電,或是你租了一台 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 專案前進吧!

解鎖完整教學內容

本章為付費內容。加入專案即可解鎖超過 5000 字的深度解析,包含 10 個以上神級 Prompt 與真實 Source Code 範例!