上網買嘢,最嘥時間嘅唔係俾錢,而係成日要襟 F5 睇吓件貨有冇減價、有冇返貨。其實用 Python 寫十零行 code,就可以砌一個「網頁監測小幫手」——佢會定時自動去睇個網頁,一有變動即刻通知你。今次就逐行教你點寫。
原理:三步搞掂
成個邏輯好簡單,分三步:
- 用 requests 拎個網頁嘅原始內容(HTML)
- 喺入面搵你想監測嘅字眼——例如「有貨」兩個字,或者個價錢
- 用 time.sleep 隔一段時間再檢查,發現狀態唔同咗先提你
完整程式碼
開一個新檔案 watch.py,貼入以下 code:
import requests
import time
URL = "https://example.com/product/12345"
KEYWORD = "有貨" # 你想監測嘅字眼
CHECK_EVERY = 300 # 每 5 分鐘檢查一次(300 秒)
def check():
r = requests.get(URL, timeout=10)
return KEYWORD in r.text
last = check()
print("開始監測,初始狀態:", "有貨" if last else "冇貨")
while True:
time.sleep(CHECK_EVERY)
now = check()
if now != last:
msg = "✅ 有貨啦!" if now else "❌ 又冇貨啦"
print(msg, "→", URL)
last = now
逐行解釋
- requests.get(URL) —— 拎個網頁嘅內容返嚟,好似用瀏覽器打開一樣。
- r.text —— 就係成個網頁嘅 HTML 原文,係一大段文字。
- KEYWORD in r.text —— 檢查你嘅關鍵字有冇出現,有就回傳 True。
- time.sleep(300) —— 等 300 秒先做下一次檢查,唔會狂轟個網站。
- 最後個 if —— 只有狀態變咗(冇貨→有貨)先會列印提醒,避免每 5 分鐘都嘈你一次。
進階:監測具體價錢
淨係睇有冇字眼唔夠精細。想知件貨到底幾錢,可以用 re(正則表達式)將個價錢數字抽返出嚟,再同上次比較,咁樣減咗一蚊你都知。
另外,print 只係喺螢幕顯示。想人唔喺電腦前面都收到通知,可以將佢換成寄 Email 或者 WhatsApp 通知——之前嗰篇「Python 自動寄 Email」已經教過點做,套返落嚟就得。
三個注意事項
- 檢查唔好太密——5 至 15 分鐘一次已經夠。太密會加重網站負擔,仲有機會俾人封 IP。
- 尊重網站條款——只監測公開頁面,商用或大量爬取前先睇清楚 robots.txt 同使用條款。
- 唔好監測要登入嘅頁面——嗰啲涉及私隱,唔啱咁用。
總結
今篇Python 教學總結: 十零行 code 就幫你慳返日日襟 F5 嘅時間。監測網頁只係其中一個用法——同樣嘅原理,你可以監測自己公司網站有冇掛、競品有冇出新品、甚至某啲資料幾時更新。自動化嘅世界好闊,由一個小程式開始就得。