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
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)
|
|
|