You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Python爬取金价后如何按阈值设置红、绿两种终端打印颜色

实现方案

核心改动分为三步:

  • 补充终端颜色重置规则,避免打印后终端颜色被持续污染
  • 对抓取到的价格文本做格式化处理,提取纯数值用于阈值判断
  • 新增数值比较逻辑,匹配对应颜色输出

修改后的完整代码如下:

from urllib.request import urlopen, Request
from bs4 import BeautifulSoup
from datetime import datetime
import time
import os
import re

class bcolors:
    SELL = '\033[92m'  # 高于阈值用绿色
    BUY  = '\033[31;1m' # 低于阈值用红色
    ENDC = '\033[0m' # 颜色重置
    
os.system("clear")
PRICE_THRESHOLD = 860000 # 价格阈值可自行调整

while True:
    url = "https://pluang.com/produk/pluang-emas"
    UserAgent = Request(url, headers={'User-Agent':'Mozilla/5.0'})
    html = urlopen(UserAgent)
    data = BeautifulSoup(html, "html.parser")

    items = data.findAll("h1", {"id":"gold-price"})
    for item in items:
        price_raw = item.get_text().strip()
        # 提取价格中的纯数字,适配带货币符号、千分位分隔符的场景
        price_num = int(re.sub(r'\D', '', price_raw))
        # 根据阈值判断使用的颜色
        if price_num < PRICE_THRESHOLD:
            color = bcolors.BUY
        else:
            color = bcolors.SELL
        # 打印输出最后加颜色重置,避免影响后续终端输出
        print(f"{color} SELL GOLD: {price_raw} - {datetime.now()}{bcolors.ENDC}")
    time.sleep(59)

如果站点返回的价格格式包含小数位,把int改成float调整提取逻辑即可;如果需要单独处理等于阈值的情况,新增elif分支即可。


内容的提问来源于stack exchange,提问作者Kabar Kabari

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.27 03:36:03