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

如何将爬虫获取的股票价格输出至Tkinter窗口?

解决Tkinter窗口无法显示爬虫获取的股票价格问题

我帮你排查了下代码,问题很明确:你已经成功爬取到股票价格并能在控制台打印,但完全没把这个价格传递给Tkinter的Label组件,所以窗口自然是空的。下面是具体的修改方案:

核心修改点

  • 先把爬取到的价格存到一个变量里(最好给个默认值,避免爬取出错时窗口无内容)
  • 将这个变量的值设置给Label组件的文本属性

修改后的完整代码

import tkinter as tk
import requests
from bs4 import BeautifulSoup

HEIGHT = 500
WIDTH = 600
root = tk.Tk()
root.title("股票价格显示")  # 给窗口加个标题,更友好

# 初始化价格文本,默认值用于异常情况
price_text = "无法获取股票价格"

stockcode = "HAPPSTMNDS"
stock_url = 'https://www1.nseindia.com/live_market/dynaContent/live_watch/get_quote/GetQuote.jsp?symbol=' + stockcode + '&illiquid=0&smeFlag=0&itpFlag=0 '
headers = {'user-agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/79.0.3945.117 Safari/537.36'}

try:
    response = requests.get(stock_url, headers=headers)
    response.raise_for_status()  # 检查请求是否成功
    soup = BeautifulSoup(response.text, 'lxml')
    data_array = soup.find(id='responseDiv').get_text().strip().split(":")
    
    for item in data_array:
        if 'lastPrice' in item:
            index = data_array.index(item) + 1
            lastestprice = data_array[index].split('"')
            price_text = f"当前股票价格: {lastestprice[1]}"
            print(price_text)
except Exception as e:
    print(f"获取数据失败: {e}")
    price_text = f"获取失败: {str(e)}"

# 创建UI部分
canvas = tk.Canvas(root, height=HEIGHT, width=WIDTH)
canvas.pack()

lower_frame = tk.Frame(root, bg='#80c1ff', bd=10)
lower_frame.place(relx=0.5, rely=0.25, relwidth=0.75, relheight=0.6, anchor='n')

# 创建Label时直接传入price_text作为文本,确保内容显示
label = tk.Label(lower_frame, text=price_text, font=('Arial', 16), bg='white')
label.place(relwidth=1, relheight=1)

root.mainloop()

额外优化说明

  1. 加了try-except块,处理请求失败、解析失败等异常情况,避免程序直接崩溃
  2. 给窗口和价格文本做了格式优化,提升界面可读性
  3. 增加了异常提示文本,即使爬取出错也能在窗口看到原因

这样修改后,爬取到的股票价格就会直接显示在Tkinter窗口里啦~

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.09 08:53:13