You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 
 
 

81 lines
2.8 KiB

#!/usr/bin/env python3
"""
查询绿康生化(002868)股票情况
"""
import urllib.request
import socket
from datetime import datetime
# 设置超时
socket.setdefaulttimeout(10)
def get_stock_info():
print("正在查询绿康生化(002868)...")
# 绿康生化 002868.SZ
try:
url = "http://qt.gtimg.cn/q=sz002868"
print(f"正在访问: {url}")
with urllib.request.urlopen(url) as f:
content = f.read().decode('gbk')
print(f"\n✅ 获取成功!")
# 解析腾讯格式
if 'v_sz002868' in content:
data_part = content.split('"')[1]
parts = data_part.split('~')
name = parts[1]
code = parts[2]
current = parts[3]
prev_close = parts[4]
open_price = parts[5]
volume = parts[6]
amount = parts[7]
high = parts[33]
low = parts[34]
# 构建美化的报告(纯文本格式)
report = []
report.append(f"{name}({code})】股票行情")
report.append("=" * 50)
report.append(f"查询时间: {datetime.now().strftime('%Y-%m-%d %H:%M:%S')}")
report.append("")
report.append(f"当前价格: {current}")
report.append(f"今  开: {open_price}")
report.append(f"昨  收: {prev_close}")
report.append(f"最  高: {high}")
report.append(f"最  低: {low}")
report.append(f"成交量: {volume}")
report.append(f"成交额: {amount}")
# 计算涨跌幅
try:
curr = float(current)
prev = float(prev_close)
change = curr - prev
pct = (change / prev) * 100
if change > 0:
report.append(f"涨  跌: +{change:.2f}元 (+{pct:.2f}%) ↑")
elif change < 0:
report.append(f"涨  跌: {change:.2f}元 ({pct:.2f}%) ↓")
else:
report.append(f"涨  跌: {change:.2f}元 (0.00%) -")
except:
pass
report.append("")
report.append("=" * 50)
report.append("数据来源: 腾讯财经")
return "\n".join(report)
except Exception as e:
return f"查询失败: {e}"
if __name__ == "__main__":
result = get_stock_info()
print(result)